python操作mysql
1、mysql.connector,mysql官方推出的纯python实现的连接库
2、pymysql,纯python写的主流连接库
3、MySQLdb,mysql官方推出基于C库来写mysql连接库,python3不再支持
4、mysqlclient,在MySQLdb的基础上fork来支持python3
一般mysqlclient(MySQLdb)性能最佳,毕竟基于C。但mysqlclient安装比较麻烦。在windows10,终端pip install mysqlclient 时,是安装不了mysqlclient这个库的,需要在https://www.lfd.uci.edu/~gohlke/pythonlibs/中下载相应系统的whl文件,然后进入whl文件相应的目录,pip install mysqlclient-xxx.whl。
所以此处使用pymysql🤷♀️
import pymysql
try:
# 数据库连接
conn = pymysql.connect(host='localhost', # 主机地址
user='root', # 账号
password='123456', # 密码
database='test', # 数据库名
charset='utf8') # 指定字符集
# 获取操作游标
cursor = conn.cursor() # 通过连接对象调用cursor()
except Exception as e:
print(e)
connect.close()
# 执行SQL语句
sql = ""
cursor.execute(sql)
# 关闭光标对象
cursor.close()
# 关闭数据库连接
conn.close()
增删改操作时,try…except:rollback
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
db.rollback()
查询操作
# 执行SQL语句
cursor.execute(sql)
r_all=cursor.fetchall() # 取出全部查询结果
r_one=cursor.fetchone() # 取出一行查询结果。从第一行开始取
r_many=cursor.fetchmany(size=2) # 取出其中几行查询结果
对一个查询多次获取时,需注意游标位置(游标在前一次fetch到的内容的结尾),可通过scroll()来重置游标位置。
cursor.scroll(self, value, mode="")
# value: 偏移量 大于0向后移动 小于0向前移动
# mode="relative":表示从当前所在的行开始移动;
# mode="relative":表示从第一行开始移动 (默认relative)
参考:
mysql客户端pymysql在python下性能比较
Python 操作 MySQL 数据库
python----mysql数据库连接
python cursor中的scroll方法