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 json模块使用实例
Apr 11 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
Python实现的多线程同步与互斥锁功能示例
Nov 30 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
查看python下OpenCV版本的方法
Aug 03 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
Python selenium的基本使用方法分析
Dec 21 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 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
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
python3操作mysql数据库的方法
2017/06/23 Python
Python用for循环实现九九乘法表
2018/05/31 Python
python实现连续图文识别
2018/12/18 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
python实现翻译word表格小程序
2020/02/27 Python
Python ini文件常用操作方法解析
2020/04/26 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
军校大学生个人的自我评价
2014/02/17 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
老师对学生的评语
2014/04/18 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
施工员岗位职责范本
2015/04/11 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python