问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python接口自动化-python操作mysql数据库(详解)

发布网友 发布时间:2024-10-08 04:36

我来回答

1个回答

热心网友 时间:2024-10-31 13:47

现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库,会不会SQL等等。因此,这篇文章来讲解如何使用Python语言操作MySQL数据库。

本科阶段曾学过使用java对MySQL数据库进行操作,基本思路是先连接数据库,然后执行SQL语句对数据库进行操作,最后打印结果并断开连接。使用Python操作数据库的流程和以上过程基本一致,在对其进行介绍之前,先介绍一些基本的概念。

以流程图的方式展示Python操作MySQL数据库的流程:首先创建Connection对象(数据库连接对象),用于打开数据库连接;然后创建Cursor对象(游标对象)用于执行查询和获取结果;接着执行SQL语句对数据库进行增删改查等操作并提交事务,此过程如果出现异常则使用回滚技术使数据库恢复到执行SQL语句之前的状态;最后,销毁Cursor对象和Connection对象,以避免多计算机内存过多的占用和浪费。

下面依次对Connection对象、Cursor对象和事务等概念进行介绍。

Connection对象即为数据库连接对象,在Python中可以使用`py mysql.connect()`方法创建Connection对象,该方法的常用参数如下:host(连接的数据库服务器主机名,默认为本地主机);user(用户名,默认为当前用户);passwd(密码,无默认值);db(数据库名称,无默认值);port(指定数据库服务器的连接端口,默认为3306);charset(连接字符集)。

Connection对象常用的方法如下:cursor()(使用当前连接创建并返回游标)、commit()(提交当前事务)、rollback()(回滚当前事务)、close()(关闭当前连接)。

Cursor对象即为游标对象,用于执行查询和获取结果,在Python中可以使用`conn.cursor()`创建,其中`conn`为Connection对象。Cursor对象常用的方法和属性如下:execute()(执行数据库查询或命令,将结果从数据库获取到客户端)、fetchone()(获取结果集的下一行)、fetchmany()(获取结果集的下几行)、fetchall()(获取结果集中剩下的所有行)、close()(关闭当前游标对象)、rowcount(最近一次的execute返回数据的行数或受影响的行数)。

事务是数据库理论中一个比较重要的概念,指访问和更新数据库的一个程序执行单元,具有ACID特性:原子性、一致性、隔离性、持久性。在开发时,我们以以下三种方式使用事务:正常结束事务(`conn.commit()`)、异常结束事务(`conn.rollback()`)、关闭自动commit(设置`conn.autocommit(False)`)。

使用Python实现对MySQL数据库的增删改查等操作。在Python中操作MySQL数据库时,要使用的模块是:Python2中`mysqldb`(`pip2 install mysqldb`),Python3中`pymysql`(`pip3 install pymysql`)。本篇博客所使用的环境为:Python 3.7、win 10、PyCharm 2018.3.5、pymysql 0.9.2、MySQL 5.6。

下面将以具体代码的形式依次介绍Python中如何实现对MySQL数据库的增删改查等操作。

Python 标准数据库接口为Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。

Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:你可以访问Python数据库接口及API查看详细的支持数据库列表。

不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。

DB-API 是一个规范,它定义了一系列必须的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。

Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。

Python DB-API使用流程:什么是MySQLdb? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

如何安装MySQLdb? 在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。PyMySQL 下载地址:github.com/PyMySQL/PyMy...

数据库连接前,请先确认以下事项:查看有没有创建数据库TESTDB(测试数据库),打开MySQL的client界面输入密码后,输入命令:查看没有那个数据库,那我们就开始创建一个TESTDB数据库,输入命令:再次输入第一步的命令查看,看到已经成功创建。查看TESTDB数据库里,有没有EMPLOYEE(测试用的测试表),输入命令:查看到在TESTDB数据库中没有EMPLOYEE表,那么没有我们就创建一张EMPLOYEE表即可。

创建一个实例,运行结果:(从结果中我们可以看见成功创建了一个Connection和Cursor对象。)下面将以具体代码的形式依次介绍Python中如何实现对MySQL数据库的增删改查等操作。

实例:1、连接数据库运行结果:参考代码:2、创建数据库表如果数据库连接存在我们可以使用execute()方法来为数据库创建表,如下所示创建表EMPLOYEE:运行代码后查看有没有表创建,输入命令:运行结果:参考代码:3、数据库插入操作以下实例使用执行 SQL INSERT 语句向表 EMPLOYEE 插入记录:1、首先查询有没有记录输入查询语句:代码实现:运行结果:再次查看有没有记录,输入第一步的sql语句:(可以看到插入一条记录)参考代码:另一种写法:实例:以下代码使用变量向SQL语句中传递参数:3、数据库查询操作Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。实例:查询EMPLOYEE表中salary(工资)字段大于1000的所有数据:运行结果:参考代码:4、数据库更新操作更新操作用于更新数据表的的数据,以下实例将 EMPLOYEE 表中的 SEX 字段为 'M' 的 AGE 字段递增 5:1、以前age是20,代码实现:运行结果:4、查询age变更到25了没有5、参考代码:5、删除操作删除操作用于删除数据表中的数据,以下实例演示了删除数据表 EMPLOYEE 中 AGE 大于 20 的所有数据:1、大于20的只有一条,删除了就没有记录了,输入代码实现:运行结果:查看数据库表,重复第一步参考代码执行事务事务机制可以确保数据一致性。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。实例:对于支持事务的数据库,在Python数据库编程中,当游标建立之时,就自动开始了一个*的数据库事务。commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。

错误处理DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:最后在我的QQ技术交流群里整理了我这10几年软件测试生涯整理的一些技术资料,包括:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题,群里也会有大神帮忙解答,群号 798478386 ( 备注 知乎555 )

全套软件测试自动化测试教学视频300G教程资料下载【视频教程+PPT+项目源码】全套软件测试自动化测试大厂面经
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我梦见一条蛇,谁能解梦? ...战地3港版,多人联网要求ea账号,于是用电脑注册了一个,用ps3登入提... 谁给推荐几个不花钱的好玩的游戏啊!无聊中... 天气潮汐预报app哪个好用 涨潮有什么软件 墨迹天气怎么看潮汐时间 墨迹天气潮汐预报设置教程 哪种天气预报能看潮汐 小米手机开发者模式在哪里关闭?小米手机开发者模式 上海行迈企业管理咨询有限公司讲师介绍 赵继红培训课程 朝鲜的人口是多少 恢复误格式化数据,记住这种方法就够了 我国法律对于伤残鉴定标准的规定是如何的? 电脑误格式化文件如何恢复?分享几个可供选择的方法 ...AO=OC,在A、C两点分别挂有三个和二个钩码,平衡时 如果在杠杆的左边挂两个钩码,右边应怎样挂钩码才能使杠杆尺平衡?_百度... ...位置挂一个相同的钩码,使杠杆在水平位置平衡 村里占地不给补偿如何办 村里占地不给补偿怎么办 在恋爱中有哪些经验教训? 绝地求生黑号怎么弄介绍_绝地求生黑号怎么弄是什么 小编来教你绝地求生怎么注册账号介绍_小编来教你绝地求生怎么注册账号是... 打印机端口有几个如何选择正确的端? 圆钢的理论重量表 圆钢牌号40mn2是什么意思 我有一张农行卡,可以办信用卡吗, 自治区党政廉洁自律8条规定 涟源一中录取分数线大约多少 我是8月11号录取,录取通知书什么时候能到? 中考录取结果一般什么时候出来啊? 如何理解“生命的变幻无常”? 为什么人生变幻无常 高血压什么科室 高血压应该挂什么科室 每天运动多长时间 成年人每天要坚持多长时间进行体育锻炼?如果平时工作比较忙要怎样进行强... 手机连不上wifi,笔记本可以正常连接,手机连WIFI时就显示一下正在... QQ空间怎么更换星座 dunk联名offwhite有出过黑白熊猫吗 山亭有哪些好玩的地方 怎么匹配车载蓝牙? 山村月出 男人因为出轨离婚财产能多分吗 在Rt△ABC中,∠A=90°,AB=6cm,AC=8cm,以斜边BC上距离B点6cm的点P为中 ... 如图,在Rt三角形ACB中,角A=90度,AB=6,AC=8,以斜边BC上的点P为中心,把... 如图,在Rt△ABC中,∠C=90°,AC=6,BC=8.动点P从点A开始沿折线AC-CB... 潮汕与汕头的关系 在△ABC中,∠C=90°,AC=8,BC=6,△ABC绕点B逆时针旋转,当点C恰好落在斜... ...RT△ABC和RT△DEF中,∠ACB=∠DFE=90°,AC=6cm,BC=8cm,EF=5cm,DF=1... 如图,在Rt△ABC,∠C=90°,AC=6,BC=8.动点P从A开始开始沿折线AC--CB...