Python 解析pymysql模块操作数据库的方法


Posted in Python onFebruary 18, 2020

pymysql 是 python 用来操作MySQL的第三方库,下面具体介绍和使用该库的基本方法。

1.建立数据库连接

通过 connect 函数中 parameter 参数 建立连接,连接成功返回Connection对象

import pymysql

#建立数据库连接
connection = pymysql.connect(host = 'localhost',
        user = 'root',
        password = '123456',
        database = 'mydb',
        charset = 'utf8'
)
#print(connection)

pymysql.connect()函数中常用的连接参数有以下几种:

  • host:数据库主机名或者ip地址
  • port:端口号
  • user:数据库的账号
  • password 或 passwd:数据库的密码
  • database 或 db:数据库的名字
  • charset:编码方式

Connection对象的重要方法:

  • close() 关闭数据库连接
  • commit() 提交数据库事物
  • rollback() 回滚数据库事务
  • cursor() 获得 Cursor游标对象

2.创建游标

一个Cursor游标对象,暂时保存了SQL操作所影响到的数据,相同的数据库连接创建的游标所引起的数据变化,会马上反应到同一连接中的其它游标对象。但是不同数据库连接中的游标对象,是否能及时反映出来,则与数据库事物管理有关。

Cursor对象基本方法和属性:

execute(operation,[parameters])

执行一条SQL语句,operation时SQL语句,parameters是其参数。返回值是整数,表示执行SQL语句影响的行数

executemany(operation,[parameters])

批量执行SQL语句

callproc(procname,[parameters])

执行存储过程,procname是存储过程名

使用execute()和executemany()方法查询后,通过以下提取方法提取结果集

fetchone()

从结果集当中返回一条记录的序列,无则返回None

fetchmany([size=cursor.arraysize])

从结果集当中返回小于或等于size的记录序列,无则返回空序列,size默认是整个游标的行数

fetchall()

从结果集当中返回所有的行数

3.建立数据库(这里我使用的是NaviCat)

创建一个名为pydb的数据库,表名为user,字段name和userid

Python 解析pymysql模块操作数据库的方法

Python 解析pymysql模块操作数据库的方法

数据的查找

#建立数据库连接
connection = pymysql.connect(host = 'localhost',
        user = 'root',
        password = '123456',
        database = 'mydb',
        charset = 'utf8'
)
#print(connection)
try:
 #创建游标对象
 with connection.cursor() as cursor:
  #执行SQL操作
  sql = 'select name, userid from user where userid >%(id)s'
  cursor.execute(sql, {'id':0})
  #提取数据集
  result_set = cursor.fetchall()
  for row in result_set:
   print('id:{0} - name:{1}'.format(row[1],row[0]))
  #游标自动关闭
finally:
 #关闭连接
 connection.close()

数据插入

#数据增加
connection = pymysql.connect(host = 'localhost',
        user = 'root',
        password = '123456',
        database = 'mydb',
        charset = 'utf8'
)
try:
 with connection.cursor() as cursor:
  sql = 'insert into user (userid,name) values (%s,%s)'
  cursor.execute(sql,(3,'cc'))
  #affectcount = cursor.execute(sql,(3,'cc'))
  #print('影响的数据行数:{0}'.format(affectcount))
  #提交数据库事务
  connection.commit()
except pymysql.DatabaseError:
 #数据库事务回滚
 connection.rollback()
finally:
 connection.close()

执行结果:

Python 解析pymysql模块操作数据库的方法

数据更新

#数据更新
connection = pymysql.connect(host = 'localhost',
        user = 'root',
        password = '123456',
        database = 'mydb',
        charset = 'utf8'
)
#print(connection)
try:
 with connection.cursor() as cursor:
  sql = 'update user set name = %s where userid > %s'
  cursor.execute(sql,('Tom',2))
  #提交事务
  connection.commit()
  print('更新成功')
except pymysql.DatabaseError as e:
 connection.rollback()
 print(e)
finally:
 connection.close()

执行结果:

Python 解析pymysql模块操作数据库的方法

数据删除

#数据删除
connection = pymysql.connect(host = 'localhost',
        user = 'root',
        password = '123456',
        database = 'mydb',
        charset = 'utf8'
        )
try:
 with connection.cursor() as cursor:
  sql = 'delete from user where userid = %s'
  cursor.execute(sql,(1))
  #提交事务
  connection.commit()
  print("删除成功")
except pymysql.DatabaseError as e:
 connection.rollback()
 print(e)
finally:
 connection.close()

执行结果:

Python 解析pymysql模块操作数据库的方法

总的来说和java进行对比,在数据库的连接 和对

数据集进行的处理上,python体现的非常简洁,最主要易于使用和理解。人生苦短,我用python!

总结

以上所述是小编给大家介绍的Python 解析pymysql模块操作数据库的方法,希望对大家有所帮助!

Python 相关文章推荐
Python列出一个文件夹及其子目录的所有文件
Jun 30 Python
你真的了解Python的random模块吗?
Dec 12 Python
Flask之flask-session的具体使用
Jul 26 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
Python适配器模式代码实现解析
Aug 02 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
Python hashlib常见摘要算法详解
Jan 13 Python
利用Python制作动态排名图的实现代码
Apr 09 Python
python中threading开启关闭线程操作
May 02 Python
Python pip安装第三方库实现过程解析
Jul 09 Python
Python3使用tesserocr识别字母数字验证码的实现
Jan 29 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 #Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 #Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 #Python
Python如何实现小程序 无限求和平均
Feb 18 #Python
python_mask_array的用法
Feb 18 #Python
基于python3生成标签云代码解析
Feb 18 #Python
基于Pytorch SSD模型分析
Feb 18 #Python
You might like
php eval函数用法总结
2012/10/31 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
js实现简易计算器功能
2019/10/18 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
python全栈知识点总结
2019/07/01 Python
django框架forms组件用法实例详解
2019/12/10 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
日化店促销方案
2014/03/26 职场文书
教师业务培训方案
2014/05/01 职场文书
在校实习生求职信
2014/06/18 职场文书
图书室标语
2014/06/21 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang