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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
Python实现Const详解
Jan 27 Python
python批量替换多文件字符串问题详解
Apr 22 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 Python
在scrapy中使用phantomJS实现异步爬取的方法
Dec 17 Python
利用python修改json文件的value方法
Dec 31 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 Python
Python 实现将某一列设置为str类型
Jul 14 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
详解python的super()的作用和原理
Oct 29 Python
用python基于appium模块开发一个自动收取能量的小助手
Sep 25 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
jQuery回车实现登录简单实现
2013/08/20 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
小程序实现tab标签页
2020/11/16 Javascript
python处理json数据中的中文
2014/03/06 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
python中的django是做什么的
2020/07/31 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
《跨越百年的美丽》教学反思
2014/02/11 职场文书
大学生演讲稿
2014/04/25 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
赔偿协议书
2015/01/27 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
Python深度学习之实现卷积神经网络
2021/06/05 Python
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android