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调用浏览器并打开一个网址的例子
Jun 05 Python
python开发之thread实现布朗运动的方法
Nov 11 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
Python中的默认参数实例分析
Jan 29 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
Python中三元表达式的几种写法介绍
Mar 04 Python
tensorflow实现在函数中用tf.Print输出中间值
Jan 21 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
python线程优先级队列知识点总结
Feb 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为php增加openssl模块的方法
2011/06/14 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
自主招生自荐信范文
2013/12/04 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
维稳承诺书
2015/01/20 职场文书
寒假安全保证书
2015/02/28 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
Golang流模式之grpc的四种数据流
2022/04/13 Golang