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设置socket代理的方法
Jan 14 Python
python更新列表的方法
Jul 28 Python
Python利用BeautifulSoup解析Html的方法示例
Jul 30 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
Python3 SSH远程连接服务器的方法示例
Dec 29 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
wxPython多个窗口的基本结构
Nov 19 Python
python hash每次调用结果不同的原因
Nov 21 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
Python基于codecs模块实现文件读写案例解析
May 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
Oracle Faq(Oracle的版本)
2006/10/09 PHP
一些关于PHP的知识
2006/11/17 PHP
PHP中的日期处理方法集锦
2007/01/02 PHP
PHP教程 预定义变量
2009/10/23 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
php面向对象重点知识分享
2019/09/27 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
将string解析为json的几种方式小结
2010/11/11 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
python将回车作为输入内容的实例
2018/06/23 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
python读写csv文件的方法
2019/08/13 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
怎样声明一个匿名的内部类
2016/06/01 面试题
微笑面对生活演讲稿
2014/05/13 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
西湖英语导游词
2015/02/06 职场文书
教师节班会主持词
2015/07/06 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
MongoDB支持的索引类型
2022/04/11 MongoDB