pymysql使用
pymysql安装
pip install pymysql
基本使用
1.创建数据库链接
connect = pymysql.connect( host='localhost', port=3306, user='root', password='123456', database='autotest' )
2.创建游标
sql语句的执行在代码中必须通过游标来进行,所以先要创建游标对象;
cur = connect.cursor()
3.通过execute()函数执行sql语句;
cur.execute("select * from user_info;")
4.读取操作
# 读取一行数据 value = cur.fetchone() print(value) # 当再次使用fetchone()时,因为是游标形式,所以会自动读取第二行 value2 = cur.fetchone() print(value2) # 获取多行数据 value3 = cur.fetmany(3) print(value3) # 获取所有数据 value4 = cur.fetchall() print(value4)
5.使用增删改时需要进行提交操作
# 增 sql_insert = "insert into autotest_user(user_name,user_sex,user_age) value(%s,%s,%s);" data=[ ('zhao', '男',24), ('qian', '女',23), ('sun', '女',22) ] cursor.executemany(sql_insert, data) # 删 sql_delete = "delete from autotest_user where user_name=%s;" username = 'jiang' cursor.execute(sql_delete,[username]) # 改 sql_update = "update autotest_user set user_name=%s where user_name=%s;" cursor.execute(sql_update,['zhao','li']) # 需要提交 connect.commit()
6.关闭数据库
# 关闭连接 cursor.close() connect.close()
备注:使用增的时候,数据库插入的是int,不要使用%d格式化操作字符,统一使用%s
设置游标类型
Cursor:默认,元组类型
DictCursor:字典类型
DictCursorMixin:支持自定义的游标类型,需先自定义才可以使用
SSCursor:无缓冲元组类型
SSdictCursor:无缓冲字典类型
方法一:在创建数据库链接时定义
# 创建数据库连接 connect = pymysql.connect( host='localhost', port=3306, user='root', password='123456', database='autotest', cursorclass=pymysql.cursors.DictCursor )
方法二:设置游标时即可更改游标类型
cursor = connect.cursor(cursor=pymysql.cursors.DictCursor)
防止sql注入
参数化语句在执行sql语句时,不要直接将数据写入sql语句,而是通过格式化操作字符将需要写入的数据进行参数化拼接,以避免SQL注入
sql_select = 'select %s from %s;'% ("user_name","autotest_user")