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
数据的查找
#建立数据库连接
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()
执行结果:
数据更新
#数据更新
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()
执行结果:
数据删除
#数据删除
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()
执行结果:
总的来说和java进行对比,在数据库的连接 和对
数据集进行的处理上,python体现的非常简洁,最主要易于使用和理解。人生苦短,我用python!
总结
以上所述是小编给大家介绍的Python 解析pymysql模块操作数据库的方法,希望对大家有所帮助!
来源:https://blog.csdn.net/zc666ying/article/details/104344740?
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Asp+ajax打造无刷新新闻评论系统
![](https://img.aspxhome.com/file/UploadPic/up/2008021216135462.gif)
python opencv 图像拼接的实现方法
![](https://img.aspxhome.com/file/2023/3/67933_0s.jpg)
如何使用数据绑定控件实现不换页提交数据?
从MySQL4.0向MySQL5迁移数据
![](https://img.aspxhome.com/file/UploadPic/200711/19/20071119131517223s.png)
Python中模块pymysql查询结果后如何获取字段列表
不安全的js写法
asp实现通过session来统计在线人数的方法
SQL Server 数据库索引其索引的小技巧
如何避免SQL语句中含有单引号而导致操作失败?
基于Python2、Python3中reload()的不同用法介绍
比较全面的PHP数组的使用方法小结
golang开发go包依赖管理godep使用教程
aspjpeg组件安装问题
常用的三种修改mysql最大连接数的方法
ASP中正则表达式的应用
MySQL Create Database 创建数据库
用php来改写404错误页让你的页面更友好
PHP Document 代码注释规范
Python手机号码归属地查询代码
![](https://img.aspxhome.com/file/2023/6/67786_0s.png)
详解PHP变量传值赋值和引用赋值变量销毁
![](https://img.aspxhome.com/file/2023/0/55720_0s.png)