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实现二分法算法实例
Feb 02 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
pandas通过loc生成新的列方法
Nov 28 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 Python
python检测服务器端口代码实例
Aug 31 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
Python之多进程与多线程的使用
Feb 23 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
第二节--PHP5 的对象模型
2006/11/16 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php cli配置文件问题分析
2015/10/15 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
JavaScript Prototype对象
2009/01/07 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
Python实现k-means算法
2018/02/23 Python
图解Python变量与赋值
2018/04/03 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
吃空饷专项治理工作实施方案
2014/03/04 职场文书
初中重阳节活动总结
2015/05/05 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
优秀创业计划书分享
2019/07/19 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
python控制台打印log输出重复的解决方法
2021/05/14 Python
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android
欧元符号 €
2022/02/17 杂记