利用Python简单操作MySQL数据库,轻松实现数据读写

PyMySQL是Python编程语言中的一个第三方模块,它可以让Python程序连接到MySQL数据库并进行数据操作。它的使用非常简单,只需要安装PyMySQL模块,然后按照一定的步骤连接到MySQL数据库即 可。本文将介绍PyMySQL的安装、连接MySQL数据库、创建表、插入数据、查询数据、更新数据和删除数据等基本操作。

一、安装PyMySQL 

在使用PyMySQL之前,我们需要先安装PyMySQL模块。可以使用pip命令进行安装

如下所示:

pip install PyMySQL

安装完成后,我们就可以在Python程序中使用PyMySQL模块了。

二、连接MySQL数据库 

在使用PyMySQL进行数据库操作之前,我们需要先连接到MySQL数据库。连接MySQL数据库需要指定 数据库的主机名、用户名、密码和数据库名等信息。可以使用PyMySQL中的connect()函数来连接 MySQL数据库

如下所示:

  1. import pymysql

  2. # 打开数据库连接

  3. db = pymysql.connect("localhost", "root", "123456", "test")

  4. # 关闭数据库连接

  5. db.close()

其中,第一个参数是数据库的主机名,如果数据库在本地,则可以使用localhost或127.0.0.1;第二个参数是数据库的用户名,一般为root;第三个参数是数据库的密码;第四个参数是要连接的数据库名。

连接成功后,我们可以使用cursor()方法获取操作游标,如下所示:

  1. # 使用 cursor() 方法创建一个游标对象 cursor

  2. cursor = db.cursor()

三、创建表 

在创建表之前,我们需要先选择要操作的数据库。可以使用select_db()方法选择要操作的数据库,如下 所示:

  1. # 选择要操作的数据库

  2. db.select_db("test")

选择数据库后,我们可以使用execute()方法执行SQL语句来创建表。

创建表的SQL语句如下所示:

  1. CREATE TABLE `user` (

  2. `id` int(11) NOT NULL AUTO_INCREMENT,

  3. `name` varchar(20) NOT NULL,

  4. `age` int(11) NOT NULL,

  5. `gender` varchar(10) NOT NULL,

  6. PRIMARY KEY (`id`)

  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

其中, user 是表名, id 、name 、age 和 gender 是表的列名, AUTO_INCREMENT 表示自动递增, NOT NULL 表示不能为空, PRIMARY KEY 表示主键。

执行创建表的SQL语句的代码如下所示:

  1. # 创建表

  2. sql = """

  3. CREATE TABLE `user` (

  4. `id` int(11) NOT NULL AUTO_INCREMENT,

  5. `name` varchar(20) NOT NULL,

  6. `age` int(11) NOT NULL,

  7. `gender` varchar(10) NOT NULL,

  8. PRIMARY KEY (`id`)

  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

  10. """

  11. cursor.execute(sql)

执行完毕后,我们可以使用show_tables()方法查看数据库中的表,如下所示:

  1. # 查看数据库中的表

  2. cursor.execute("show tables")

  3. tables = cursor.fetchall()

  4. for table in tables:

  5. print(table)

四、插入数据 

在插入数据之前,我们需要先准备好要插入的数据。插入数据可以使用execute()方法执行SQL语句,如下所示:

  1. # 插入数据

  2. sql = "INSERT INTO `user`(`name`, `age`, `gender`) VALUES (%s, %s, %s)"

  3. values = ("张三", 18, "男")

  4. cursor.execute(sql, values)

其中, %s 表示占位符,后面的values是要插入的数据。执行完毕后,我们可以使用commit()方法提交事务,如下所示:

  1. # 提交事务

  2. db.commit()

五、查询数据 

在查询数据之前,我们需要先准备好要查询的条件。查询数据可以使用execute()方法执行SQL语句,如 下所示:

  1. # 查询数据

  2. sql = "SELECT * FROM `user` WHERE `name`=%s"

  3. values = ("张三",)

  4. cursor.execute(sql, values)

  5. result = cursor.fetchall()

  6. forrow in result: print(row)

其中, SELECT * FROM user WHERE name =%s 表示查询 user 表中名字为 张三 的记录, %s 是占位符, 后面的values是查询条件。执行完毕后,我们可以使用fetchall()方法获取查询结果。

六、更新数据 

在更新数据之前,我们需要先准备好要更新的数据和更新条件。更新数据可以使用execute()方法执行 SQL语句,如下所示:

  1. # 更新数据

  2. sql = "UPDATE `user` SET `age`=%s WHERE `name`=%s"

  3. values = (20, "张三")

  4. cursor.execute(sql, values)

其中, UPDATE user SET age =%s WHERE name =%s 表示将 user 表中名字为 张三 的记录的年龄更新为 20, %s 是占位符,后面的values是更新数据和更新条件。执行完毕后,我们可以使用commit()方法提交事务。

七、删除数据 

在删除数据之前,我们需要先准备好要删除的数据和删除条件。删除数据可以使用execute()方法执行 SQL语句,如下所示:

  1. # 删除数据

  2. sql = "DELETE FROM `user` WHERE `name`=%s"

  3. values = ("张三",)

  4. cursor.execute(sql, values)

其中, DELETE FROM user WHERE name =%s 表示删除 user 表中名字为 张三 的记录, %s 是占位符,后 面的values是删除条件。执行完毕后,我们可以使用commit()方法提交事务。

八、总结 

本文介绍了PyMySQL的安装、连接MySQL数据库、创建表、插入数据、查询数据、更新数据和删除数据 等基本操作。通过学习本文,读者可以掌握使用PyMySQL进行MySQL数据库操作的基本方法。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/679255.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZL-0895小动物活动记录仪可同时检测8只动物的活动量

简单介绍: 小动物活动记录仪是一种多用途、宽范围的小动物活动记录仪器,可用于小鼠、大鼠、豚鼠和兔的实验,小动物活动记录仪​具有不需对动物使用特别盛具的特点,可在不改变动物原生活环境的情况下,进行实时监测&…

今日刷三题(day11):不同路径的数目(一)+短距离最小路径和+把数字翻译成字符串

题目一:不同路径的数目(一) 题目描述: 一个机器人在mn大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点…

实战BACnet/IP标准通信网关在楼宇自动化中的应用

智慧楼宇建设实现不同设备间的互联互通是一项巨大挑战,尤其是在那些历史悠久的建筑中,新旧系统并存的情况尤为普遍。某大型商业综合体就面临着这样的困境:老旧的暖通空调系统采用Modbus RTU协议,而新部署的能源管理系统却要求BACn…

物联网实战--平台篇之(三)账户后台数据库

目录 一、账户后台设计 二、账户数据库 三、数据库操作——增 四、数据库操作——改 五、数据库操作——查 本项目的交流QQ群:701889554 物联网实战--入门篇https://blog.csdn.net/ypp240124016/category_12609773.html 物联网实战--驱动篇https://blog.csdn.net/ypp240…

C++反射之检测struct或class是否实现指定函数

目录 1.引言 2.检测结构体或类的静态函数 3.检测结构体或类的成员函数 3.1.方法1 3.2.方法2 1.引言 诸如Java, C#这些语言是设计的时候就有反射支持的。c没有原生的反射支持。并且,c提供给我们的运行时类型信息非常少,只是通过typeinfo提供了有限的…

深入了解 NumPy:深度学习中的数学运算利器

文章目录 1. 导入NumPy2. 创建NumPy数组3. 数组的算术运算4. N维数组4.1 创建和操作多维数组4.2 高维数组 5. NumPy的广播功能5.1 基本广播示例5.2 更复杂的广播示例 6. 访问数组元素6.1 基于索引的访问6.2 遍历数组6.3 基于条件的访问6.4 高级索引6.5 性能考虑 在深度学习和数…

基于java,SpringBoot和Vue的智慧校园在线考试留言讨论系统设计

摘要 基于Java, SpringBoot和Vue的智慧校园在线考试留言讨论系统是一个为现代教育需求定制的Web应用,它结合了最新的前后端技术来提供一个互动性强、用户友好的学习和交流平台。该系统旨在通过提供实时留言和讨论功能,增进学生间的互动以及师生之间的沟…

Java数组的使用

前言 这里我使用的是IDEA编译器进行演示 数组的创建与初始化 创建格式: T[] 数组名 new T[N] T表示数组存放的数据类型,N表示数组的大小。 T[] 表示数组的类型。 这里要注意和C语言不同的是C语言使用类似int arr[10]这样的结构进行创建数组&#xff0c…

时序图详解

1.这是iic总线在回应时候的时序图,data in代表eeprom收到数据,回stm32的ack,数据回应,data out代表stm32收到eeprom的消息,数据输出ack回应 2.交叉线 代表在这一次输出高电平,或者在这一次也可能输出低电…

【bash】笔记

在Shell脚本中,-e 是一个测试运算符,用于检查给定的文件或目录是否存在。 | 是通道符,会把前面的输出给后面作为输入。 sudo tee命令在这里用于同时更新文件和在终端显示输出(尽管 > /dev/null 将标准输出重定向到黑洞&…

windows11忘记登录密码怎么办?

STEP1:进入Win RE界面 1.按住shift不要松手,点击重新启动,进入WINRE界面 2.选择疑难解答 选择高级选项 点击命令提示符 STEP2:替换utilman 1.输入以下代码查看所在windows所在盘 diskpart list volume exit 2.根据所在盘输入命令(以C盘为…

全面的Partisia Blockchain 生态 4 月市场进展解读

Partisia Blockchain 是一个以高迸发、隐私、高度可互操作性、可拓展为特性的 Layer1 网络。通过将 MPC 技术方案引入到区块链系统中,以零知识证明(ZK)技术和多方计算(MPC)为基础,共同保障在不影响网络完整…