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中for语句简单遍历数据的方法
May 07 Python
Python基于Tkinter的HelloWorld入门实例
Jun 17 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
python生成以及打开json、csv和txt文件的实例
Nov 16 Python
python处理multipart/form-data的请求方法
Dec 26 Python
python实现猜拳小游戏
Apr 05 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
python基础之模块的导入
Oct 24 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
linux下安装php的memcached客户端
2014/08/03 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
C++的几个面试题附答案
2016/08/03 面试题
社保转移委托书范本
2014/10/08 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
Java 定时任务技术趋势简介
2022/05/04 Java/Android