一、PyMySQL?
1、概念
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
2、PyMySQL安装
在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。使用语句:pip install pymysql安装。
3、MySQL数据库准备
- 首先创建一个可连接的库并拥有该库的用户名和密码以及操作权限;
- 创建一个可供操作的表格并插入数据;
- 在你的机子上已经安装了 PyMySQL 模块。
4、连接数据库
1 # 导入pymsql模块 2 import pymysql 3 # 连接database 4 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdatase",charset="utf8") 5 # 得到一个可以执行SQL语句的光标对象 6 cursor = conn.cursor() 7 # 要执行的sql语句 8 sql = "select * from userinfo where name = %s and pwd = %s;" 9 # 执行sql语句 10 cursor.execute(sql,["name","pwd"]) 11 # 关闭光标对象 12 cursor.close() 13 # 关闭数据库连接 14 conn.close()
# 得到一个可以执行SQL语句并且将结果作为字典返回的游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
二、基本操作
1、增
1 import pymysql 2 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdb",charset="utf8") 3 cursor = conn.cursor() 4 sql = "insert into userinfo (name,pwd) values (%s,%s);" 5 cursor.execute(sql,["小明",123]) 6 # 数据的提交 7 conn.commit() 8 cursor.close() 9 conn.close()
批量的增加数据:
1 import pymysql 2 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="day59",charset="utf8") 3 cursor = conn.cursor() 4 sql = "insert into userinfo (name,pwd) values (%s,%s);" 5 data=[("小花",123),("小李",456),("小白",789)] 6 # 批量插入数据使用executemany,data是可迭代的数据 7 cursor.executemany(sql,data) 8 conn.commit() 9 cursor.close() 10 conn.close()
获取刚插入数据的ID:
在提交事务之后获取刚插入数据的ID值:last_id = cursor.lastrowid.
2、删
1 # 导入pymsql模块
2 import pymysql
3 # 连接database 4 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdb",charset="utf8") 5 # 得到一个可以执行SQL语句的光标对象 6 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) 7 print(cursor) 8 # 要执行的sql语句 9 sql = "delete from userinfo where name = %s;" 10 # 执行sql语句 11 cursor.execute(sql,"小明")
12 conn.commit()
13 # 关闭光标对象
14 cursor.close()
15 # 关闭数据库连接
16 conn.close()
3、改
1 # 导入pymsql模块 2 import pymysql 3 # 连接database 4 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdb",charset="utf8") 5 # 得到一个可以执行SQL语句的光标对象 6 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) 7 print(cursor) 8 # 要执行的sql语句 9 sql = "update userinfo set pwd=%s where name=%s;" 10 # 执行sql语句 11 cursor.execute(sql,["321","小明"])
12 conn.commit() 13 # 关闭光标对象 14 cursor.close() 15 # 关闭数据库连接 16 conn.close()
4、查
1 # 导入pymsql模块 2 import pymysql 3 # 连接database 4 conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password ="123456",database="testdb",charset="utf8") 5 # 得到一个可以执行SQL语句的光标对象 6 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) 7 print(cursor) 8 # 要执行的sql语句 9 sql = "select * from userinfo where name = %s;" 10 # 执行sql语句 11 cursor.execute(sql,["小明"]) 12 ret1 = cursor.fetchone() # 取一条 13 ret2 = cursor.fetchmany(3) # 取三条 14 ret3 = cursor.fetchall() # 取所有 15 cursor.scroll(1, mode="absolute") # 绝对移动,你指哪儿 它就移到哪儿 16 cursor.scroll(1, mode="relative") # 相对移动, 相对它当前在的位置 17 cursor.scroll(-1, mode="relative") # 相对移动, 相对它当前在的位置 18 # 关闭光标对象 19 cursor.close() 20 # 关闭数据库连接 21 conn.close()