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将xml和xsl转换为html的方法
Mar 10 Python
Python pickle模块用法实例
Apr 14 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
Django 路由控制的实现代码
Nov 08 Python
python文件拆分与重组实例
Dec 10 Python
对Python 除法负数取商的取整方式详解
Dec 12 Python
代码实例讲解python3的编码问题
Jul 08 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
python 实现图像快速替换某种颜色
Jun 04 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
python数字图像处理之图像自动阈值分割示例
Jun 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中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
PHP多态代码实例
2015/06/26 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Python与R语言的简要对比
2017/11/14 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
大学生的自我鉴定范文
2014/01/21 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
供电工程专业求职信
2014/08/09 职场文书
廉洁自律个人总结
2015/02/14 职场文书
通知书大全
2015/04/27 职场文书
首次购房证明
2015/06/19 职场文书
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server