一、mysql的常见连接库
1.MySQLdb
最有名的库,用C写的。支持pyton2 但是不支持python3
2.mysqlclient
在MySQLdb的基础上。增加了对Python3的支持
3.pymysql
语法兼容MySQLdb,使用纯python写的mysql客户端,支持python3
二、安装
(t1) E:\code\project\t1>pip install pymysql
(t1) E:\code\project\t1>pip freeze
PyMySQL==1.0.2
三、修改操作
import pymysql
conn = None
cursor = None
try:
# 和mysql数据库建立连接
conn = pymysql.connect(host='10.87.10.69',user='admin',password='abc123,',database='data')
#创建一个游标,这个游标是用来读取要执行的sql的
cursor = conn.cursor()
sql = "insert into studens values(1,'zhangsan',20);"
#执行sql
cursor.execute(sql)
#提交事务
conn.commit()
except Exception as e:
print(e)
conn.rollback()
finally:
if conn:
conn.close()
if cursor:
cursor.close()
四、查询操作
import pymysql
conn = None
cursor = None
try:
# 和mysql数据库建立连接
conn = pymysql.connect(host='10.87.10.69',user='admin',password='abc123,',database='data')
cursor = conn.cursor()
sql = "select * from studens"
x = cursor.execute(sql)
#查询所有结果
print(cursor.fetchall())
#将游标返回到第一行,就可以再次查询结果集
cursor.rownumber = 0
print('-' * 30)
#查询一行
print(cursor.fetchone())
print('-' * 30)
#查询多行
print(cursor.fetchmany(2))
finally:
if conn:
conn.close()
if cursor:
cursor.close()
参数化查询:参数化查询主要是为了防止sql注入
sql = "select * from studens where id = %(id)s"
cursor.execute(sql,{'id': 2})