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探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 Python
Python 将RGB图像转换为Pytho灰度图像的实例
Nov 14 Python
Python动态语言与鸭子类型详解
Jul 01 Python
python manage.py runserver流程解析
Nov 08 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
Jan 25 Python
python生成大写32位uuid代码
Mar 03 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
Django模型验证器介绍与源码分析
Sep 08 Python
详解Python爬虫爬取博客园问题列表所有的问题
Jan 18 Python
python实现图片转字符画
Feb 19 Python
如何使用flask将模型部署为服务
May 13 Python
python如何利用cv2模块读取显示保存图片
Jun 04 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 nl2br()格式化输出的详解
2013/06/05 PHP
谈谈PHP连接Access数据库的注意事项
2016/08/12 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
关于文本限制字数的js代码
2007/04/02 Javascript
用js遍历 table的脚本
2008/07/23 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
详解JS函数防抖
2020/06/05 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
python文件和目录操作函数小结
2014/07/11 Python
详细解读Python中的__init__()方法
2015/05/02 Python
python计算圆周率pi的方法
2015/07/11 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
浅谈html5 响应式布局
2014/12/24 HTML / CSS
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
优质的学校老师推荐信
2013/10/28 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
法制演讲稿
2014/09/10 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
银行催款通知书
2015/04/17 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
python 如何获取页面所有a标签下href的值
2021/05/06 Python