目录索引
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-插入操作
1.什么时候会用到
在我们进行接口用例断言或者UI用例断言的时候,我们可能需要去数据库取数据,还有平时如果需要自动化造数据,有时候也需要代码操作数据库,所以python操作数据库还是蛮重要的,今天超哥来带你从头学,掌声响起来,虽然我听不到,嘿嘿。
超哥一贯的风格,
简单粗暴
,上具体代码:
2.具体怎么用
2.1安装pymsql
python安装pymsql,一般我们优先使用pip 命令:pip install pymysql ,这里说明一点,pymysql是python3支持的数据库操作模块,之前的mysqldb模块不适用python3,所以弃之。
安装如图:
2.2连接数据库
连接前的准备工作,首先需要准备好可以连接的数据库服务器地址,我的如下:
IP:127.0.0.1
Port:3306
user:root
pwd:xxxx
database:testdb
2.2.1-连接数据库:
pymysql.connect()连接数据库函数,需要传递host(主机地址),user(数据库登录用户),passwd(密码),db(要连接的数据库名)参数
#导入安装好的pymysql包import pymsql#打开数据库连接conn = pymysql.connect(host='127.0.0.1',user = "root",passwd = "123456",db = "testdb")
2.2.2-获取游标:
要想操作数据库,光连接数据是不够的,必须拿到操作数据库的游标,才能进行后续的操作,比如读取数据、添加数据。通过获取到的数据库连接实例conn下的cursor()方法来创建游标。游标用来接收返回结果
#获取游标,用来查询,写入等
cursor=conn.cursor()
说明:cursor返回一个游标实例对象,其中包含了很多操作数据的方法,比如执行sql语句。
2.3操作数据库
2.3.1-执行sql的方法
操作数据库无非就是执行sql的增删改查,执行sql语句有两种方法:execute和executemany,先来看看他两个的使用方法,后面的代码实例会做更详细的说明
execute(query,args=None)
函数作用:执行单条的sql语句,执行成功后返回受影响的行数
参数说明:
query:要执行的sql语句,字符串类型
args:可选的序列或映射,用于query的参数值。如果args为序列,query中必须使用%s做占位符;如果args为映射,query中必须使用%(key)s做占位符
#使用%s作为占位符,通过args传参
sql = 'SELECT * from user_info where id = %s or id = %s or id = %s'
#4执行sql,通过args传参,实现动态参数传递
cursor.execute(sql,args=(1,2,3))
executemany(query,args=None)
函数作用:批量执行sql语句,比如批量插入数据,执行成功后返回受影响的行数
参数说明:
query:要执行的sql语句,字符串类型
args:嵌套的序列或映射,用于query的参数值
#使用%s作为占位符,通过args传参
sql="insert into user_info values(%s,%s,%s)"
#使用execute 传递嵌套序列参数
insert=cur.executemany(sql,[(1,'小明',20),(2,'小红',10),(3,'小花',30)])
注意:
-
数据库性能瓶颈很大一部份就在于网络IO和磁盘IO,将多个sql语句放在一起,只执行一次IO,可以有效的提升数据库性能。推荐此方法
-
.用executemany()方法一次性批量执行sql语句,固然很好,但是当数据一次传入过多到server端,可能造成server端的buffer溢出,也可能产生一些意想不到的麻烦。所以,合理、分批次使用executemany是个合理的办法
上面是两个操作函数,学完我们就可以一展身手了,数据库操作当然离不开增删改查,跟上节奏,记得分享下超哥公众号的文章,让更多学技术的人都有所收获,超哥爱你么么哒。
总结:
接下来就是使用上面的两个方法如何具体的对数据库进行增删改查,
明天咱们继续更新,记得关注超哥公众号,下次学习查看不迷路,微信直接搜索:橙好测试开发,你懂得。
北京橙好科技,SuperTesting,测试提升学院,专注测试提升,年薪冲刺40W!
功能测试想转型测试开发的同学可以关注以下公众号,更多干货在等你!