Python 解析pymysql模块操作数据库的方法

作者:cici_vivi 时间:2021-05-07 07:46:13 

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模块操作数据库的方法,希望对大家有所帮助!

来源:https://blog.csdn.net/zc666ying/article/details/104344740?

标签:Python,pymysql,模块,数据库
0
投稿

猜你喜欢

  • Asp+ajax打造无刷新新闻评论系统

    2008-02-12 15:43:00
  • python opencv 图像拼接的实现方法

    2021-06-21 19:11:51
  • 如何使用数据绑定控件实现不换页提交数据?

    2010-05-16 15:17:00
  • 从MySQL4.0向MySQL5迁移数据

    2007-11-19 13:11:00
  • Python中模块pymysql查询结果后如何获取字段列表

    2023-07-23 18:52:54
  • 不安全的js写法

    2009-09-16 14:26:00
  • asp实现通过session来统计在线人数的方法

    2007-08-13 12:56:00
  • SQL Server 数据库索引其索引的小技巧

    2012-07-11 15:55:02
  • 如何避免SQL语句中含有单引号而导致操作失败?

    2009-11-07 18:40:00
  • 基于Python2、Python3中reload()的不同用法介绍

    2023-10-01 17:59:15
  • 比较全面的PHP数组的使用方法小结

    2023-11-18 21:30:25
  • golang开发go包依赖管理godep使用教程

    2023-10-16 04:09:31
  • aspjpeg组件安装问题

    2008-09-27 17:52:00
  • 常用的三种修改mysql最大连接数的方法

    2010-03-09 15:42:00
  • ASP中正则表达式的应用

    2010-05-27 12:24:00
  • MySQL Create Database 创建数据库

    2011-09-10 16:04:51
  • 用php来改写404错误页让你的页面更友好

    2023-10-26 20:16:21
  • PHP Document 代码注释规范

    2023-11-14 11:50:54
  • Python手机号码归属地查询代码

    2021-05-02 05:00:30
  • 详解PHP变量传值赋值和引用赋值变量销毁

    2023-10-25 00:27:31
  • asp之家 网络编程 m.aspxhome.com