Python3操作数据库mysql-超哥连载(二)

本文详细介绍了Python3如何操作MySQL数据库,包括安装pymsql、连接数据库、获取游标、建表、查询、更新、删除和插入操作。强调了fetch系列方法在处理游标位置的重要性,并预告了接下来将讲解正则表达式。
摘要由CSDN通过智能技术生成

目录

1.什么时候会用到
2.具体怎么用

2.1安装pymsql

2.2连接数据库

2.2.1-连接数据库

2.2.2-获取游标:

2.3操作数据库

2.3.1-执行sql的方法

2.3.2-建表操作

2.3.3-查询操作

2.3.4-更新操作

2.3.5-删除操作

2.3.6-插入操作

 

      咱们书接上回,今天继续更新python3操作mysql,上次介绍了数据库安装,连接,获取游标,还有执行sql的两个方法,今天继续。

2.3.2-建表操作

在我们练习前先创建一个表:user_info

sql="""CREATE TABLE `user_info` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL DEFAULT '',
`age` INT(11) DEFAULT NULL,
`sfzh` char(18) not null DEFAULT '',
PRIMARY KEY (`id`),
KEY `name_index` (`name`)
)ENGINE = InnoDB DEFAULT CHARSET = utf8;"""
#excute或excutemany方法返回的只是受影响的行数
create= cursor.execute(sql)
conn.commit()
print ('新建后受影响的行数为:',create)
#插入后查询该数据
#关闭游标
cursor.close()
#关闭连接
conn.close()

输出:

python3操作数据库mysql连载(二)

 

2.3.3-查询操作

使用execute()函数得到的只是受影响的行数,并不能真正拿到查询的内容,如果想拿到返回的数据库结果,则需要掌握cursor对象的三种方法,如下:
cursor.fetchone()--------------------获取游标所在处的一行数据,返回元组,元组的内容就是sql的查询结果的,一行是一个元素,没有返回None
cursor.fetchmany(size)------------接受size行返回结果行。如果size大于返回的结果行的数量,则会返回cursor.arraysize条数据。
cursor. fetchall()---------------------接收全部的返回结果行。

下面我们通过实际操作来看下

#导包,python3使用pymysql,启用mysqldb
import pymysql
#1连接数据库
conn= pymysql.connect(host='localhost',user="root",password="",db="test")
#2获取游标
cursor=conn.cursor()
#3准备要执行的sql
sql='SELECT * from user_info where id = 2 or id = 3'
#4执行sql
cursor.execute(sql)
#5获取sql结果
print('fetchall的输出结果:',cursor.fetchall())#返回是一个嵌套的元组,元组的内容就是sql的查询结果,一行是一个元素,((2, 'a', 21, ''), (3, 'b', 23, ''))
print('fetchone的输出结果:',cursor.fetchone())#返回一个元组,元组的内容就是sql的第一行结果(2, 'a', 22, '')
print('fetchmany的输出结果:',cursor.fetchmany(2))#返回指定的几行结果:((2, 'a', 21, ''), (3, 'b', 23, ''))
#操作完数据库需要关闭连接,否则占用数据库连接数,消耗资源
conn.close()

输出:

python3操作数据库mysql连载(二)

 

注意:fetch的每个方法都会导致游标动,比如fetchall操作完后如果继续用fetchone会输出none如上图,因为游标已经到达返回结果的最后,所以如果想继续使用fetchone,则建议单独执行,不要批量使用,所以必须注意游标的位置。

再来看下excecute函数带参数的方式

……
#准备要执行的sql
sql='SELECT * from user_info where id =%s or id =%s'
#执行sql,通过args传参,实现动态参数传递
cursor.execute(sql,args=(2,3))
#获取sql结果
print('fetchone的输出结果:',cursor.fetchone())#返回一个元组,元组的内容就是sql的第一行结果(2, 'a', 22, '')
#关闭游标
cursor.close()
#关闭连接
conn.close()

输出:

python3操作数据库mysql连载(二)

 

关于excecutemany函数的示例我们在写操作的时候细讲

 

今天就写到这里,明天继续更新剩下的更新,插入,删除操作,期待大家的关注!关注不迷路,文章看个够!

        数据库连载完毕后下一遍连载文章:正则表达式,超哥用简单通俗的语言,教大家掌握让人头疼的正则表达式,**微信搜索:橙好测试开发**,超哥公众号,不间断更新,期待你的关注!

        最后给自己打个广告,VIP小班测试提升班,转型测试开发,年薪冲刺40W,5.23日就要开班了,有想法的同学只能预定6月的位子了,由于是小班提升,名额有限,质量保证,所以请提前占位!

 

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值