Python 中使用 PyMySQL模块操作数据库的方法


Posted in Python onNovember 10, 2019

之前用的Python2,连接MySQL用的是MySQLdb。现在换成python3.x了,由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 PyMySQL模块,以下将介绍PyMySQL的安装及常用操作。

一、安装

pip install PyMySQL

二、常用操作

查询数据

import pymysql
# 连接数据库
conn = pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='root',
  port=3306,
  db='test',
  charset='utf8'
)
# 创建一个游标
cursor = conn.cursor()
# 查询数据
sql = "select * from user"
cursor.execute(sql) # 执行sql
# 查询所有数据,返回结果默认以元组形式,所以可以进行迭代处理
for i in cursor.fetchall():
  print(i)
print('共查询到:', cursor.rowcount, '条数据。')
# 获取第一行数据
result_1 = cursor.fetchone()
print(result_1)
# 获取前n行数据
result_3 = cursor.fetchmany(3)
print(result_3)
cursor.close() # 关闭游标
conn.close() # 关闭连接

插入数据

执行完插入语句后一定要执行.commit()进行提交事务,可以插入多条后统一提交,否则操作无效

import pymysql
# 连接数据库
conn = pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='root',
  port=3306,
  db='test',
  charset='utf8'
)
# 创建一个游标
cursor = conn.cursor()
# 插入数据
# 数据直接写在sql后面
sql = "insert into username(id,name) values(%s, %s)" # 注意是%s,不是s%
cursor.execute(sql, [3, '王五']) # 列表格式数据
cursor.execute(sql, (4, '马六')) # 元组格式数据
# 数据单独赋给一个对象
sql = "insert into username values(%s,%s)"
data = (5, '老七')
cursor.execute(sql, data) #sql和data之间以","隔开
sql = "insert into username values(%s,'%s')"
data = (6, '小八')
cursor.execute(sql % data) #sql和data之间以"%"隔开,此时它的sql中注意要给中文字符对应的占位符加上引号,即"%s",不然会报错:unsupported format character
conn.commit()  # 提交,不然无法保存插入或者修改的数据(这个一定不要忘记加上)
cursor.close() # 关闭游标
conn.close() # 关闭连接

修改数据

执行完修改语句后一定要执行.commit()进行提交事务,可以修改多条后统一提交,否则操作无效

import pymysql
# 连接数据库
conn = pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='root',
  port=3306,
  db='test',
  charset='utf8'
)
# 创建一个游标
cursor = conn.cursor()
# 修改数据
sql = "update username set name='%s' where id=%s" #注意%s什么时候加引号,什么时候不加
data = ('改名了', 1)
cursor.execute(sql % data)
sql = "update username set name=%s where id=%s"
data = ('也改名了', 2)
cursor.execute(sql, data)
conn.commit()  # 提交,不然无法保存插入或者修改的数据
cursor.close() # 关闭游标
conn.close() # 关闭连接

删除数据

执行完删除语句后一定要执行.commit()进行提交事务,可以删除多条后统一提交,否则操作无效

import pymysql
# 连接数据库
conn = pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='root',
  port=3306,
  db='test',
  charset='utf8'
)
# 创建一个游标
cursor = conn.cursor()
# 删除数据
sql = "delete from username where id=%s"
data = (2)
cursor.execute(sql, data)
conn.commit()  # 提交,不然删除操作不生效
cursor.close() # 关闭游标
conn.close() # 关闭连接

总结

以上所述是小编给大家介绍的Python 中使用 PyMySQL操作数据库的方法,希望对大家有所帮助!

Python 相关文章推荐
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
python线程、进程和协程详解
Jul 19 Python
Python正则抓取网易新闻的方法示例
Apr 21 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
python实现超市管理系统(后台管理)
Oct 25 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
Pycharm plot独立窗口显示的操作
Dec 11 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 Python
分享PyCharm的几个使用技巧
Nov 10 #Python
Python单元测试与测试用例简析
Nov 09 #Python
python自动化测试之异常及日志操作实例分析
Nov 09 #Python
Python多线程模块Threading用法示例小结
Nov 09 #Python
Python for循环及基础用法详解
Nov 08 #Python
python常用排序算法的实现代码
Nov 08 #Python
python分布式编程实现过程解析
Nov 08 #Python
You might like
PHP编程之高级技巧——利用Mysql函数
2006/10/09 PHP
yii中widget的用法
2014/12/03 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
jquery弹出框的用法示例(2)
2013/08/26 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
单位门卫岗位职责
2013/12/20 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
成本会计岗位职责
2015/02/03 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
党小组鉴定意见
2015/06/02 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
六年级作文之预言作文
2019/10/25 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL