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提示[Errno 32]Broken pipe导致线程crash错误解决方法
Nov 19 Python
Python将图片批量从png格式转换至WebP格式
Aug 22 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
Python django实现简单的邮件系统发送邮件功能
Jul 14 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 Python
Django基础知识与基本应用入门教程
Jul 20 Python
python判断文件夹内是否存在指定后缀文件的实例
Jun 10 Python
python argparser的具体使用
Nov 10 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
常用的10个Python实用小技巧
Aug 10 Python
通过代码实例了解Python3编程技巧
Oct 13 Python
python中取整数的几种方法
Nov 07 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
JAVA/JSP学习系列之七
2006/10/09 PHP
PHP中list方法用法示例
2016/12/01 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
学习Vue组件实例
2018/04/28 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
python类继承用法实例分析
2014/10/10 Python
python中readline判断文件读取结束的方法
2014/11/08 Python
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
OpenCV 模板匹配
2019/07/10 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
AJAX都有哪些有点和缺点
2012/11/03 面试题
学生励志演讲稿
2014/01/06 职场文书
syb养殖创业计划书
2014/01/09 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
合作协议书模板
2014/10/10 职场文书
党的作风建设心得体会
2014/10/22 职场文书
教育读书笔记
2015/07/02 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书