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读写ini配置文件方法实例分析
Jun 30 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
python如何定义带参数的装饰器
Mar 20 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
Python paramiko模块使用解析(实现ssh)
Aug 30 Python
python 实现屏幕录制示例
Dec 23 Python
pytorch实现MNIST手写体识别
Feb 14 Python
Django ModelForm操作及验证方式
Mar 30 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
Apr 27 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
Python2及Python3如何实现兼容切换
Sep 01 Python
Django使用django-simple-captcha做验证码的实现示例
Jan 07 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
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
JS高级笔记
2011/07/13 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
react基本安装与测试示例
2020/04/27 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
python对于requests的封装方法详解
2019/01/03 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
小学运动会口号
2014/06/07 职场文书
股东授权委托书范本
2014/09/13 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
城管个人总结
2015/02/28 职场文书
微观世界观后感
2015/06/10 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书