Python如何使用PyMySQL连接数据库
创始人
2024-01-30 20:40:19
0

1:为什么要连接数据库呢?

        做接口自动化测试的时候,我们需要校验数据是否正常入库,数据是否正确,来做断言处理;有的时候需要修改数据,去执行其他场景的测试用例;有的时候需要删除数据,从而实现同一个数据多次使用。

        例如:注册了一个新用户,产生了多余的数据,下次同一个账号就无法注册了,这种情况怎么办呢?自动化测试都有数据准备和数据清理的操作,如果因此用例产生了多余数据,就需要清理数据,可以用Pyhthon连接Mysql直接删除多余的数据就可以了。

2:python连接Mysql的模块安装

        第一种方法:在线安装

        在Pycharm---点击--Terminal---输入pip install PyMySQL等待完装完毕即可,如图所示

        第二种方法:离线安装

        有时候在线安装第三方模块的时,会因为网络原因总是装不上,那怎么办呢?那就手动安装

        参考这个网址:python——pymysql的安装 - 走看看

3:开始连接MySql

import pymysql# 打开数据库连接
db = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="123456", database="user_test")
"""host:地址,你的数据库地址port:端口号user:用户名password:密码database:要操作的数据库
"""
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 使用 execute()  方法执行 SQL 查询
cursor.execute("select * from studys")
​
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()# 输出data数据
print(data)# 关闭数据库连接
db.close()

4:查询数据

        写查询语句,查询一行数据,查询多行数据

语法:select 列名称 from 表名称 [查询条件]# 查询表里所有内容select * from studys例如要查询 students 表中所有学生的名字和年龄, 输入语句select name, age from studysfetchone()获取一行数据fetchall()获取所有数据

        查询一行语句

# 导入模块
import pymysql# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "123456", "user_test")# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 使用 execute()方法执行 SQL 查询
# 通配符 *,意思是查询表里所有内容
cursor.execute("select * from user")# 使用 fetchone() 方法获取一行数据.
data = cursor.fetchone()
print(data)# 关闭数据库连接
db.close()

         运行结果:是以元组的形式返回的 

        查询多行语句

# 导入模块
import pymysql# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "123456", "user_test")# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 使用 execute()方法执行 SQL 查询
# 通配符 *,意思是查询表里所有内容
cursor.execute("select * from user")# 使用 fetchall() 方法获取查询出的所有数据.
data = cursor.fetchall()
print(data)# 关闭数据库连接
db.close()

        运行结果:以元组的形式返回

5:增加数据

        需要使用db.commit(),提交到数据库执行

        语法:

        insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:

        insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);

        其中 [ ] 内的内容是可选的, 例如, 要给user_test数据库中的 user 表插入一条记录, 执行语句:

        insert into studys values(3, '小明');

# 导入模块
import pymysql# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "123456", "user_test")# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 使用 execute()方法执行sql语句
cursor.execute("insert into user (id,name) values (3,'小明')")# 使用commit()方法,提交到数据库执行
db.commit()# 可以再执行查询语句,看数据是否插入成功
cursor.execute("select * from user where id ='3' and name = '小明'")# # 使用fetchone()方法获取单条数据
data = cursor.fetchone()
print(data)# 关闭数据库连接
db.close()

        再次运行上面的代码,运行后报错,有两个错误信息

        1:错误再哪一行

        2: 下面这个错误原因是,主键冲突

        在插入数据的时候,可能会出现主键冲突,为防止插入数据时,抛出异常,所以加上try...except

# 导入模块
import pymysql# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "123456", "user_test")# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 将sql语句赋值给一个变量
insert_sql = "insert into user (id,name) values (3,'小明')"try:# 使用 execute()方法执行sql语句cursor.execute(insert_sql)# 使用commit()方法,提交到数据库执行db.commit()# 可以再执行查询语句,看数据是否插入成功cursor.execute("select * from user where id ='3' and name = '小明'")# 使用fetchone()方法获取单条数据data = cursor.fetchone()print(data)
except:print("数据插入失败,请查检sql语句")# 想知道报了什么错,可以抛个异常raise# 关闭数据库连接
db.close()

6:修改数据

        需要使用db.commit(),提交到数据库执行

        语法:update 表名称 set 列名称=新值 where 更新条件;

# 导入模块
import pymysql# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "123456", "user_test")# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 将sql语句赋值给一个变量
update_sql = "update user set name='小小名' where id =3"try:# 使用 execute()方法执行sql语句cursor.execute(insert_sql)# 使用commit()方法,提交到数据库执行db.commit()# 可以再执行查询语句,看数据是否修改成功cursor.execute("select * from user where id ='3'")# 使用fetchone()方法获取单条数据data = cursor.fetchone()print(data)
except:print("数据修改失败,请查检sql语句")# 发生错误,回滚db.rollback()# 想知道报了什么错,可以抛个异常raise# 关闭数据库连接
db.close()

7:删除数据

        需要使用db.commit(),提交到数据库执行

        语法:delete from 表名称 where 删除条件;

# 导入模块
import pymysql# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "123456", "user_test")# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 将sql语句赋值给一个变量
update_sql = "delete from user where id =3"try:# 使用 execute()方法执行sql语句cursor.execute(insert_sql)# 使用commit()方法,提交到数据库执行db.commit()# 可以再执行查询语句,看数据是否删除成功cursor.execute("select * from user)# 使用fetchone()方法获取单条数据data = cursor.fetchone()print(data)
except:print("数据修改失败,请查检sql语句")# 发生错误,回滚db.rollback()# 想知道报了什么错,可以抛个异常raise# 关闭数据库连接
db.close()

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...