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之用while来循环
Oct 02 Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
python实现数据写入excel表格
Mar 25 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
python与idea的集成的实现
Nov 20 Python
python中的装饰器该如何使用
Jun 18 Python
分享7个 Python 实战项目练习
Mar 03 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 什么是PEAR?
2009/03/19 PHP
php中in_array函数用法分析
2014/11/15 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
php截取视频指定帧为图片
2016/05/16 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
看了就知道什么是JSON
2007/12/09 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
knockoutjs模板实现树形结构列表
2017/07/31 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
python插入排序算法实例分析
2015/07/03 Python
快速了解Python中的装饰器
2018/01/11 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
html5 标签
2009/07/16 HTML / CSS
平面设计师工作职责范文
2013/12/03 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
《春晓》教学反思
2014/04/20 职场文书
个人承诺书怎么写
2014/05/24 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
Python使用openpyxl模块处理Excel文件
2022/06/05 Python