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 list语法学习(带例子)
Nov 01 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
python去掉行尾的换行符方法
Jan 04 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
Python定义二叉树及4种遍历方法实例详解
Jul 05 Python
Python切片操作深入详解
Jul 27 Python
pytorch 转换矩阵的维数位置方法
Dec 08 Python
对python周期性定时器的示例详解
Feb 19 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
Python Flask上下文管理机制实例解析
Mar 16 Python
python 实现批量图片识别并翻译
Nov 02 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
WordPress JQuery处理沙发头像
2009/06/22 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
python 写的一个爬虫程序源码
2016/02/28 Python
Python入门教程之运算符与控制流
2016/08/17 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
Python列表(List)知识点总结
2019/02/18 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
大学生校园创业计划书
2014/02/08 职场文书
四风问题自查报告剖析材料
2014/02/08 职场文书
交通安全寄语大全
2014/04/08 职场文书
《水上飞机》教学反思
2014/04/10 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
企业百日安全活动总结
2015/05/07 职场文书
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android