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编写一个简单的俄罗斯方块游戏的教程
Apr 03 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
python中lambda()的用法
Nov 16 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
Python使用pyh生成HTML文档的方法示例
Mar 10 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
May 28 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
python中upper是做什么用的
Jul 20 Python
python在协程中增加任务实例操作
Feb 28 Python
Django项目在pycharm新建的步骤方法
Mar 02 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 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
世界收音机发展史
2021/03/01 无线电
PHP中鲜为人知的10个函数
2014/02/28 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
JS变量及其作用域
2017/03/29 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
详解jquery和vue对比
2019/04/16 jQuery
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
Python输出各行命令详解
2018/02/01 Python
pandas带有重复索引操作方法
2018/06/08 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
python中JWT用户认证的实现
2020/05/18 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
捐款倡议书格式范文
2014/05/14 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
入党介绍人考察意见
2015/06/01 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
Docker安装MySql8并远程访问的实现
2022/07/07 Servers