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环境下安装使用异步任务队列包Celery的基础教程
May 07 Python
使用XML库的方式,实现RPC通信的方法(推荐)
Jun 14 Python
wxPython之解决闪烁的问题
Jan 15 Python
python如何爬取个性签名
Jun 19 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
Python实现合并excel表格的方法分析
Apr 13 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
Django实现列表页商品数据返回教程
Apr 03 Python
利用python绘制数据曲线图的实现
Apr 09 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
Python reques接口测试框架实现代码
Jul 28 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中数据的批量导入(csv文件)
2006/10/09 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php中的登陆login实例代码
2016/06/20 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
jquery插件实现轮播图效果
2020/10/19 jQuery
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
python字符串替换示例
2014/04/24 Python
一道python走迷宫算法题
2018/01/22 Python
python 自动批量打开网页的示例
2019/02/21 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
《小石潭记》教学反思
2014/02/13 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
大学生村官承诺书
2014/03/28 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
学雷锋的心得体会
2014/09/04 职场文书
大学军训心得体会800字
2016/01/11 职场文书
python异常中else的实例用法
2021/06/15 Python
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
docker-compose部署Yapi的方法
2022/04/08 Servers