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模块操作数据库的方法,希望对大家有所帮助!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 明达年度发烧碟MasterSuperiorAudiophile2021[DSF]
- 英文DJ 《致命的温柔》24K德国HD金碟DTS 2CD[WAV+分轨][1.7G]
- 张学友1997《不老的传说》宝丽金首版 [WAV+CUE][971M]
- 张韶涵2024 《不负韶华》开盘母带[低速原抓WAV+CUE][1.1G]
- lol全球总决赛lcs三号种子是谁 S14全球总决赛lcs三号种子队伍介绍
- lol全球总决赛lck三号种子是谁 S14全球总决赛lck三号种子队伍
- 群星.2005-三里屯音乐之男孩女孩的情人节【太合麦田】【WAV+CUE】
- 崔健.2005-给你一点颜色【东西音乐】【WAV+CUE】
- 南台湾小姑娘.1998-心爱,等一下【大旗】【WAV+CUE】
- 【新世纪】群星-美丽人生(CestLaVie)(6CD)[WAV+CUE]
- ProteanQuartet-Tempusomniavincit(2024)[24-WAV]
- SirEdwardElgarconductsElgar[FLAC+CUE]
- 田震《20世纪中华歌坛名人百集珍藏版》[WAV+CUE][1G]
- BEYOND《大地》24K金蝶限量编号[低速原抓WAV+CUE][986M]
- 陈奕迅《准备中 SACD》[日本限量版] [WAV+CUE][1.2G]