【python】第三方库-pymysql操作mysql数据库

简介

官方文档

https://pymysql.readthedocs.io/en/latest/index.html

安装

pip install PyMySQL

说明

connection对象

连接对象,可创建数据库连接,创建对象的类为class pymysql.connections.Connection,该对象的操作如下

方法说明
begin()开启事务
close()关闭连接
commit()提交
rollback()回滚
cursor(cursor=None)创建游标
open当连接打开返回true
ping(reconnect=True)检测连接是否活着
select_db(db)选择数据库(相当于数据库命令 use)
show_warnings()显示警告

cursor对象

主要使用class pymysql.cursors.Cursor(connection),方法or属性说明如下

方法/属性说明
close()关闭游标
execute(query,args=None)执行sql语句,args接收tuple/dict/list类型的参数,返回影响数量
executemany(query)执行sql语句(批量数据)
fecthall()查询符合条件的全部
fecthmany(size=None)查询符合条件的多条
fecthone()查询一条(next)
max_stmt_length=1024000executemany批量处理数据的最大值
mogrify(query, args=None)返回通过调用execute()方法发送到数据库的确切字符串

其他cursor对象详见文档

使用

连接数据库

初始化数据库

# 导入pymysql
import pymysql
# 创建连接
conn = pymysql.connect(host='localhost', 
                       user='root', 
                       password='root',
                       database='tst', 
                       charset='utf8')
# 创建游标
cursor = conn.cursor()  

数据查询

select_sql = 'select * from content'
cursor.execute(select_sql)
res = cursor.fetchall()
print(res)

增删改

# 要执行的增删改sql语句
update_sql = 'UPDATE content SET name`=%s WHERE id=%s'
# 执行语句
cursor.execute(update_sql, ['xiaixai',2])
# 提交
conn.commit()

示例

# 创建连接
conn = pymysql.connect(host='localhost', user='root', password='root', database='tb', charset='utf8')
# 创建游标
cursor = conn.cursor()
# 查询数据
select_sql = 'select * from content'
cursor.execute(select_sql)
# res = cursor.fetchone()
res = cursor.fetchall()
# res = cursor.fetchmany(2)
print(res)

# 插入数据
insert_sql = 'insert into content(name) values(%s)'
# res = cursor.execute(insert_sql, ['xiaozhong'])
res = cursor.executemany(insert_sql, ['xiaoxi', 'xiaobei', 'xiaonan'])  # 批量插入
print(res) # 影响条数
conn.commit()
#
# 修改数据
update_sql = 'UPDATE content SET name=%s WHERE id=%s'
# res = cursor.execute(update_sql, ['xiaodong', 1])
res = cursor.executemany(update_sql, [('xiaozhong', 1), ('小小xiao', 2)])
print(res)
conn.commit()

# 删除数据
delete_sql = 'delete from content WHERE id=%s'
# res = cursor.execute(delete_sql, [1])
res = cursor.executemany(delete_sql, [1, 2, 3,4])
print(res)
conn.commit()

# 注意处理数据后记得关闭游标和连接
cursor.close()
conn.close()

版权声明:本文为weixin_37008947原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。