Python操作MySQL有两个模块,PyMySQL和mysqldb,前者在Python3和Python2中都可以使用,而后者不支持Python3。这里简单介绍一下PyMySQL的用法。
- PyMySQL的安装
PyMySQL的安装有两种方式,在Python3已经安装好的前提下,可以使用如下命令安装:
pip3 install PyMySQL
如果pip无法正确安装PyMySQL,可以通过下载PyMySQL的源码编译安装,具体方式如下:
git clone https://github.com/PyMySQL/PyMySQL
cd PyMySQL
python3 setup.py install
或者下载PyMySQL的源码包,解压并安装。与上面相同。
- 使用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()
- 遍历结果集
# 获取所有结果
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就可以了,很简单。这里就不再详细介绍了。
- 调用存储过程
#游标设置为字典类型
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版权协议,转载请附上原文出处链接和本声明。