pymysql详解——通过Python连接Mysql数据库

pymysql详解——通过Python连接Mysql数据库

pymysql是可用于连接mysql数据库,且能够提供mysql与python窗口交互创立通道的工具库。可以通过创建引擎,建立游标直接通过python编程实现mysql数据库操作。在开发和分析可形成线性脚本。是广泛使用的库。

连接数据库的重要性

做接口自动化测试的时候,我们需要校验数据是否正常入库,数据是否正确,来做断言处理;有的时候需要修改数据,去执行其他场景的测试用例;有的时候需要删除数据,从而实现同一个数据多次使用。
例如:注册了一个新用户,产生了多余的数据,下次同一个账号就无法注册了,这种情况怎么办呢?自动化测试都有数据准备和数据清理的操作,如果因此用例产生了多余数据,就需要清理数据,可以用Pyhthon连接Mysql直接删除多余的数据就可以了。

python连接Mysql的模块安装
在Pycharm—点击–Terminal—输入pip install PyMySQL等待完装完毕即可,如图所示

也可以用清华源或者阿里源等镜像仓库地址,速度更快。

pip install PyMySQL -i https://pypi.tuna.tsinghua.edu.cn/simple

安装库其它推荐源:
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:https://pypi.hustunique.com/
山东理工大学:https://pypi.sdutlinux.org/
豆瓣:https://pypi.douban.com/simple/
在这里插入图片描述

也可以通过pycharm设置里面找到python解释器查看相关库并安装:

在这里插入图片描述

增删改需要有提交事务的操作,查不需要提交事务,但如果循环查询,务必提交事务,否则结果都是重复的
创建连接对象——db= pymysql()
创建cursor游标对象——cur = db.cursor()
数据操作——cur.execute(sql)
提交连接事务——db.commit()
关闭cursor游标对象——cur.close()
关闭连接对象——db.close( )

什么是游标
游标,通俗来说就是“游动的标志”,

有时候,我们执行一条查询语句的时候,往往会得到N条返回结果,执行sql语句去除这些返回结果的接口,就是游标。沿着这个游标,我们可以一次取出一行记录。
举个例子:
当不使用游标功能,去执行 select * from employee where salary > 3000 ; 这条语句时,如果有1000条返回结果,系统会一次性将1000条记录返回到界面中,你不能做选择,也不能做其他操作。
当我们开启了游标功能,再去执行这条语句的时候,系统会先帮你找到这些行,先给你存放起来,然后提供一个游戏接口。当你需要数据的时候,就借助这个游标去一行行的取出数据,你每取出一条记录,游标指针就朝前移动一次,一直到取完最后一行数据。
当我们使用python连接MySQL的时候,那么python就相当于是MySQL服务器的一个客户端,我们利用python这个client去操作MySQL的server
在pymysql中操作数据库,就是使用游标这种方式来获取表中的数据。

在这里插入图片描述
在这里插入图片描述

开始连接MySql
创建游标,使数据以字典的形式返回

   # 使用 cursor() 方法创建一个游标对象 cursor,默认返回元素数据类型
   cursor = db.cursor()
  # 添加cursor参数,指定返回字典数据类型
  cursor = db.cursor(cursor=pymysql.cursors.DictCursor)

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

语法:

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

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

语法:

insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:
insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
其中 [ ] 内的内容是可选的, 例如, 要给user_test数据库中的 user 表插入一条记录, 执行语句:
insert into studys values(3, '小明')

删除数据
需要使用db.commit(),提交到数据库执行
语法:delete from 表名称 where 删除条件;

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

我们先来做个简单的案列:
先用Navicat连接我们数据库:
然后先建一个简单的表
在这里插入图片描述
teacher表的创建:

create table teacher(
id int(4) not null unique auto_increment,
num int(10) not null unique,
name varchar(20) not null,
sex varchar(4) not null,
birthday datetime,
address  varchar(50),
primary key(id) 
)engine = InnoDB default charset = utf8 collate = utf8_bin; 

就可以成功看到我们的建的teacher表了:
在这里插入图片描述

我们利用pymysql库连接mysql使用 execute()方法执行插入数据sql语句并查询teacher表:

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", port=3306, user="你的用户名", password="xxxx", database="zcc")
"""
    host:地址,你的数据库地址
    port:端口号
    user:用户名
    password:密码
    database:要操作的数据库
"""
# 使用 cursor() 方法创建一个游标对象 cursor,默认返回元素数据类型
cursor = db.cursor()
# 添加cursor参数,指定返回字典数据类型

# 使用 execute()方法执行sql语句
cursor.execute("insert into teacher values(1,1001, '张三', '男', '1984-11-08', '北京市昌平区'),"
               "(2, 1002, '李四', '女', '1970-01-21', '北京市海淀区'),"
               "(3, 1003, '王五', '男', '1976-10-30', '北京市昌平区'),"
               "(4, 1004, '赵六', '男', '1980-06-05', '北京市顺义区')")

# 使用commit()方法,提交到数据库执行
db.commit()

# 可以再执行查询语句,看数据是否插入成功
cursor.execute("select * from teacher")

# # 使用fetchone()方法获取单条数据
data = cursor.fetchall()
print(data)
# 关闭数据库连接

在这里插入图片描述

输出的data结果就是sql语句查询到的结果

data = cursor.fetchall()
print(data)

我们再去navicat里面看看
在这里插入图片描述
这里显示成功插入数据

我们再试试删除一条teacher表记录 :delete from teacher where id =1 然后我们再查询删除后teacher表的内容

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", port=3306, user="你的用户名", password="xxxx", database="zcc")
"""
    host:地址,你的数据库地址
    port:端口号
    user:用户名
    password:密码
    database:要操作的数据库
"""
# 使用 cursor() 方法创建一个游标对象 cursor,默认返回元素数据类型
cursor = db.cursor()

# 将sql语句赋值给一个变量
update_sql = "delete from teacher where id =1"

try:
    # 使用 execute()方法执行sql语句
    cursor.execute(update_sql)

    # 使用commit()方法,提交到数据库执行
    db.commit()

    # 可以再执行查询语句,看数据是否删除成功
    cursor.execute("select * from teacher")
    # 使用fetchone()方法获取单条数据
    data = cursor.fetchall()
    print(data)
except:
    print("数据修改失败,请查检sql语句")
    # 发生错误,回滚
    db.rollback()
    # 想知道报了什么错,可以抛个异常
    raise

# 关闭数据库连接
db.close()

在这里插入图片描述
注意这里:
#fetchone()获取一行数据
#fetchall()获取所有数据

navicat也成功显示删除记录成功:
在这里插入图片描述
这就是关于pymsql连接数据库简单的小案例希望看过我的博客对你所有帮助!

今日写博客听歌—— Can We Kiss Forever歌手:Kina / Adriana Proenza

  • 20
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
连接MySQL数据库的详细方法及步骤如下: 1. 安装MySQL驱动程序 在Python连接MySQL数据库需要使用MySQL驱动程序,我们可以使用pip命令安装PyMySQLmysql-connector-python。 - 使用PyMySQL: ```python pip install PyMySQL ``` - 使用mysql-connector-python: ```python pip install mysql-connector-python ``` 2. 导入MySQL驱动程序 在Python代码中导入MySQL驱动程序,如果使用PyMySQL,则导入PyMySQL模块,如果使用mysql-connector-python,则导入mysql.connector模块。 ```python # 使用PyMySQL import pymysql # 使用mysql-connector-python import mysql.connector ``` 3. 连接MySQL数据库Python代码中连接MySQL数据库,需要指定数据库的主机、用户名、密码、数据库名称等信息。 - 使用PyMySQL: ```python # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 关闭数据库连接 db.close() ``` - 使用mysql-connector-python: ```python # 打开数据库连接 db = mysql.connector.connect(host="localhost", user="root", password="password", database="test") # 关闭数据库连接 db.close() ``` 4. 创建游标对象 在Python代码中连接MySQL数据库后,需要创建一个游标对象,用于执行SQL语句。 - 使用PyMySQL: ```python # 创建游标对象 cursor = db.cursor() # 关闭游标对象 cursor.close() ``` - 使用mysql-connector-python: ```python # 创建游标对象 cursor = db.cursor() # 关闭游标对象 cursor.close() ``` 5. 执行SQL语句 在Python代码中连接MySQL数据库后,使用游标对象执行SQL语句。 - 使用PyMySQL: ```python # 执行SQL语句 sql = "SELECT * FROM table_name" cursor.execute(sql) # 获取查询结果 results = cursor.fetchall() for row in results: print(row) # 提交修改 db.commit() ``` - 使用mysql-connector-python: ```python # 执行SQL语句 sql = "SELECT * FROM table_name" cursor.execute(sql) # 获取查询结果 results = cursor.fetchall() for row in results: print(row) # 提交修改 db.commit() ``` 6. 关闭数据库连接Python代码中连接MySQL数据库后,需要在完成操作后关闭数据库连接。 ```python # 关闭数据库连接 db.close() ``` 以上就是Python连接MySQL数据库的详细方法及步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星川皆无恙

如果对您有所帮助,感谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值