因为Python和MySQL是2套软件,所以在互相交互的时候需要一个"桥梁"。这个"桥梁"就是驱动!
-
mysqldb又叫MySQL-python
- 优点:基于C开发的库,速度快
- 缺点:在 Windows 平台安装非常不友好,经常出现失败的情况,多年不更新了,只兼容python2
-
mysqlclient
- 优点:基于C开发的库,速度快,兼容python3
- 缺点:编译安装可能会导致报各种错误
-
pymysql
- 优点:纯 Python 实现的驱动,兼容python3,使用简单
- 缺点:速度不如mysqldb
【示例】创建数据库
pythonimport pymysql # 链接数据库 con = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',charset='utf8') # 获取一个和数据库交互的工具cursor coursor = con.cursor() # 编写SQL sql = ''' CREATE DATABASE sxt DEFAULT CHARACTER SET = 'utf8mb4'; ''' # 执行SQL coursor.execute(sql) # 关闭cursor coursor.close() # 关闭链接 con.close()
*pythondef add_one(): # 链接数据库 con = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='sxt',charset='utf8') # 获取操作数据的对象 cursor cursor = con.cursor() # 编写SQL-DML # sql = "INSERT INTO t_user VALUES (0,'貂的蝉',18,'女');" sql = "INSERT INTO t_user VALUES (0,%s,%s,%s);" args = ('刘备',22,'男') # 执行SQL cursor.execute(sql,args) # 提交事务 con.commit() # 关闭Cursor cursor.close() # 关闭链接 con.close()
python#导入模块 import pymysql #创建连接 con = pymysql.connect(host='localhost',user='root',password='root',db='db_test', charset='utf8') #创建游标对象cursor cursor=con.cursor() sql='select * from t_user' #执行sql cursor.execute(sql) #获取结果集 # result = cursor.fetchall() # result = cursor.fetchmany(2) result = cursor.fetchone() print(result) # print(cursor.rowcount)