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实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
Python XML RPC服务器端和客户端实例
Nov 22 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
详解如何将python3.6软件的py文件打包成exe程序
Oct 09 Python
django基础学习之send_mail功能
Aug 07 Python
Python全栈之列表数据类型详解
Oct 01 Python
python 非线性规划方式(scipy.optimize.minimize)
Feb 11 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
python代码xml转txt实例
Mar 10 Python
Python collections模块的使用方法
Oct 09 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
python图片灰度化处理的几种方法
Jun 23 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php for 循环语句使用方法详细说明
2010/05/09 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
php文件读取方法实例分析
2015/06/20 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
分享一个常用的javascript静态类
2014/12/31 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
Python中获取网页状态码的两个方法
2014/11/03 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
详解python调度框架APScheduler使用
2017/03/28 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
Flask配置Cors跨域的实现
2019/07/12 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
Django框架安装方法图文详解
2019/11/04 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
室内设计专业个人的自我评价
2013/10/19 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
活动总结怎么写啊
2014/05/07 职场文书
大学生就业求职信
2014/06/12 职场文书
庆祝教师节标语
2014/10/09 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
小学推普周活动总结
2015/05/07 职场文书
原告代理词范文
2015/05/25 职场文书