Python3操作MySQL

Python操作MySQL有两个模块,PyMySQL和mysqldb,前者在Python3和Python2中都可以使用,而后者不支持Python3。这里简单介绍一下PyMySQL的用法。

  1. PyMySQL的安装

PyMySQL的安装有两种方式,在Python3已经安装好的前提下,可以使用如下命令安装:

pip3 install PyMySQL

如果pip无法正确安装PyMySQL,可以通过下载PyMySQL的源码编译安装,具体方式如下:

git clone https://github.com/PyMySQL/PyMySQL
cd PyMySQL
python3 setup.py install

或者下载PyMySQL的源码包,解压并安装。与上面相同。

  1. 使用PyMySQL连接MySQL数据库
#!/usr/bin/python3

import pymysql

# 打开数据库连接,参数说明:数据库ip地址或者主机名,用户名,密码,数据库名
# 这种是在方式必须要求MySQL的端口是默认的3306
conn = pymysql.connect('localhost','root','root','mysql')

# db = pymysql.connect(host='localhost', port=3306, user='root', passowrd='root', db='mysql', charset='utf8')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = conn.cursor()

# 使用 execute()方法执行SQL查询, 并返回受影响的行数
rows = cursor.execute("select * from user")

# 使用 fetchone()方法获取单条数据.使用fetchall()获取所有记录
data = cursor.fetchone()

# 使用fetchmany()获取结果的前n行数据,这里获取了剩余的前3行
many = cursor.fetchmany(3)

# 使用fetchall获取所有数据,这里获取了剩余的所有数据
all = cursor.fetchall()

# 提交事务
conn.commit()

# 关闭数据库连接,先关闭游标
cursor.close()
conn.close()
  1. 遍历结果集
# 获取所有结果
all = cursor.fetchall()

# 遍历
for row in all:   # 每一个row代表一行数据
  column1 = row[0]
  column2 = row[1]
  column3 = row[2]

  print("%s, %s, %s" % (column1, column2, column3))

MySQL中除了查询语句需要遍历结果集之外,其它的语句基本上执行execute语句,然后commit就可以了,很简单。这里就不再详细介绍了。

  1. 调用存储过程
#游标设置为字典类型
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
#无参数存储过程
cursor.callproc('pro1')  #相当于cursor.execute("call pro()")

# 有参数存储过程
cursor.callproc('pro2', args=(1, 2, 3, 4))

这里就简单的介绍了Python3如何操作MySQL,很简单。


版权声明:本文为gxd520原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。