1、安装最新版本pymysql+查看模块依赖信息:
# 使用pip install安装pymysql模块
pip install pymysql
# 使用pip show查看pymysql版本和其他信息
pip show pymysql
2、创建MySQL<MariaDB>的连接:
import pymysql
connection = pymysql.connect(host='localhost',
user='用户名',
password='密码',
db='数据库',
port=3306,
charset='字符集',
cursorclass=pymysql.cursors.DictCursor)
# 默认查询的数据是以元组的形式输出,设置cursorclass为DictCursor,以字典的形式输出
# cursorclass=pymysql.cursors.DictCursor
# 操作完数据库后,记得及时关闭连接
connection.close()
3、创建Cursor游标对象:
# 创建Cursor游标对象,用来操作数据库,接收一个游标类型的参数,默认是Cursor类,使用DictCursor数据会以字典的形式输出;链接时设置了,这里就不需要设置了;
cursor = connection.cursor(cursor=DictCursor)
# 跟connection一致,使用完毕以后,记得close
cursor.close()
# 或者使用上下文管理器,交给python自动关闭:
with connection.cursor(cursor=DictCursor) as cursor:
# 不在需要手动关掉cursor
pass
4、使用Cursor执行SQL查询语句:
# 调用execute方法,执行一条语句
cursor.execute("select * from c_user;")
# fetchone()打印查询的一条数据
print(cursor.fetchone())
# fetchall()打印查询的所有数据
print(cursor.fetchall())
# fetchmany(10)打印查询的指定数量的数据
print(cursor.fetchmany(10))
# 打印你查询结果的行数
print(cursor.rowcount)
5、使用Cursor执行SQL编辑语句:
# 使用pymysql执行新增、删除、编辑语句后,需要执行commit()方法
row_number = cursor.execute("update c_group set group_desc='TEST' where id=18;")
# 打印编辑语句影响的行数
print(row_number)
# executemany()方法可以执行多条语句,使用方法:% () 类似这种格式化字符串
row_number = cursor.executemany("update c_group set group_desc='TEST' where id=%s;", (1, 2, 3))
# 提交修改
connection.commit()
# 对可以发生异常的语句,可以加上异常捕获,并且执行回滚
connection.rollback()
# 如果你执行的是insert语句,且主键是自增的,lastrowid会打印下一个主键id
cursor.lastrowid