请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 15|回复: 0

如何在Python中操作MySQL?(一)

[复制链接]

2775

主题

3174

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
11260
发表于 6 天前 | 显示全部楼层 |阅读模式
      一. Python操作数据库介绍
  Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:
  ·GadFly
  · mSQL
  · MySQL
  · PostgreSQL
  · Microsoft SQL Server 2000
  · Informix
  · Interbase
  · Oracle
  · Sybase ...
  你可以访问Python数据库接口及API查看详细的支持数据库列表。
  不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。
  DB-API 是一个规范. 它定义了一系列必需的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。
  Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。
  Python DB-API使用流程:
  · 引入 API 模块。
  · 获取与数据库的连接。
  · 执行SQL语句和存储过程
  · 关闭数据库连接。
  二. Python操作MySQL模块
  Python操作MySQL主要使用两种方式:
  DB模块(原生SQL)
  · PyMySQL(支持python2.x/3.x)
  · MySQLdb(目前仅支持python2.x)
  ORM框架
  · SQLAchemy
  2.1PyMySQL模块
  本文主要介绍PyMySQL模块,MySQLdb使用方式类似。
  2.1.1 安装PyMySQL
  PyMySQL是一个Python编写的MySQL驱动程序,让我们可以用Python语言操作MySQL数据库。
  pip install PyMySQL
  2.2 基本使用
  #! /usr/bin/env python
  # -*- coding: utf-8 -*-
  # __author__ = "shuke"
  # Date: 2018/5/13
  import pymysql
  # 创建连接
  conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4')
  # 创建游标(查询数据返回为元组格式)
  # cursor = conn.cursor()
  # 创建游标(查询数据返回为字典格式)
  cursor = conn.cursor(pymysql.cursors.DictCursor)
  # 1. 执行SQL,返回受影响的行数
  effect_row1 = cursor.execute("select * from USER")
  # 2. 执行SQL,返回受影响的行数,一次插入多行数据
  effect_row2 = cursor.executemany("insert into USER (NAME) values(%s)", [("jack"), ("boom"), ("lucy")])  # 3
  # 查询所有数据,返回数据为元组格式
  result = cursor.fetchall()
  # 增/删/改均需要进行commit提交,进行保存
  conn.commit()
  # 关闭游标
  cursor.close()
  # 关闭连接
  conn.close()
  print(result)
  """
  [{'id': 6, 'name': 'boom'}, {'id': 5, 'name': 'jack'}, {'id': 7, 'name': 'lucy'}, {'id': 4, 'name': 'tome'}, {'id': 3, 'name': 'zff'}, {'id': 1, 'name': 'zhaofengfeng'}, {'id': 2, 'name': 'zhaofengfeng02'}]
  """

  2.3 获取最新创建的数据自增ID
  #! /usr/bin/env python
  # -*- coding: utf-8 -*-
  # __author__ = "shuke"
  # Date: 2018/5/13
  import pymysql
  # 创建连接
  conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4')
  # 创建游标(查询数据返回为元组格式)
  cursor = conn.cursor()
  # 获取新创建数据自增ID
  effect_row = cursor.executemany("insert into USER (NAME)values(%s)", [("eric")])
  # 增删改均需要进行commit提交
  conn.commit()
  # 关闭游标
  cursor.close()
  # 关闭连接
  conn.close()
  new_id = cursor.lastrowid
  print(new_id)
  """
  8
  """



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-6-29 13:56 , Processed in 0.077157 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表