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+Django在windows下的开发环境配置图解
Nov 11 Python
用Python的pandas框架操作Excel文件中的数据教程
Mar 31 Python
教你使用python画一朵花送女朋友
Mar 29 Python
Python输入二维数组方法
Apr 13 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
Tensorflow中的placeholder和feed_dict的使用
Jul 09 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
Feb 01 Python
python3.5安装python3-tk详解
Apr 26 Python
基于python的BP神经网络及异或实现过程解析
Sep 30 Python
Python class的继承方法代码实例
Feb 14 Python
python2 对excel表格操作完整示例
Feb 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
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
2015/07/15 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
jQuery 技巧小结
2010/04/02 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
js数组去重的方法总结
2019/01/18 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
python常见的格式化输出小结
2016/12/15 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
浅谈Python协程
2020/06/17 Python
蔻驰美国官网:COACH美国
2016/08/18 全球购物
eBay奥地利站:eBay.at
2019/07/24 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
事业单位请假制度
2014/01/13 职场文书
学习交流会主持词
2014/04/01 职场文书
五好关工委申报材料
2014/05/31 职场文书
2014年超市工作总结
2014/11/19 职场文书
总账会计岗位职责
2015/04/02 职场文书
学风建设主题班会
2015/08/17 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
Python实现生活常识解答机器人
2021/06/28 Python
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android
如何利用python实现列表嵌套字典取值
2022/06/10 Python