Python使用PyMySQL操作MySQL数据库的增删改查实战

蓝鲸
蓝鲸
发布时间:2026-10-14| 4人浏览过
原创

本文详细介绍如何使用Python的PyMySQL库连接MySQL数据库,涵盖从建立连接到执行增删改查的完整流程。通过具体代码示例,演示了数据库与表的创建、单条及批量数据的插入、查询、更新和删除操作,以及游标和连接的规范关闭方法,帮助开发者快速掌握Python与MySQL交互的核心技能。

Python操作MySQL数据库实战指南

前言

在软件开发中,持久化存储大量数据以备后续使用是常见需求,数据库为此提供了高效可靠的解决方案。在众多数据库系统中,MySQL因其入门门槛低、语法简洁且功能实用而广受欢迎。本文将重点讲解如何利用Python语言连接MySQL数据库,并实现数据的增加、删除、修改和查询(CRUD)操作,接下来将通过具体步骤展开详细介绍。

建立连接与初始化数据库表

首先需要进行数据库连接,并创建所需的数据库及数据表。

其基本语法结构如下:


execute(query, args=None)
# query为字符串类型的sql语句
# args:可选的序列或映射,用于query的参数值。
# 如果args为序列,query中必须使用%s做占位符;
# 如果args为映射,query中必须使用%(key)s做占位符

本案例设定数据库名为learning,数据表名为houses,包含name、house_location和purchasing_year三个字段。


import pymysql
db = pymysql.connect('localhost', 'root', "password")  # 打开数据库连接,password替换为本机数据库密码
cursor = db.cursor()
cursor.execute('drop database learning;')
cursor.execute('create database learning;')
cursor.execute('use learning')
sql_create = """create table houses (name VARCHAR(100) NOT NULL, house_location VARCHAR(100) NOT NULL, purchasing_year VARCHAR(100) NOT NULL);"""
cursor.execute(sql_create)

数据插入操作详解

接下来演示数据插入操作。


# 插入
sql_insert = """insert into houses values(%s,%s,%s);"""
cursor.execute(sql_insert,('梦璃','南天门',1995))  # 插入单条数据
cursor.executemany(sql_insert,[('紫英','蜀山',1996),('天河','石沉',1997),('菱纱','溪洞',1998)])  # 插入多条数据

数据查询功能实现

随后介绍数据查询功能。


sql_select = """select * from houses"""
# 单条查询
cursor.execute(sql_select)
while 1:
 result = cursor.fetchone()
 if result is None:
  # 取完所有结果
  break
 print(result)

# 多条查询,取3条数据
cursor.execute(sql_select)
Result = cursor.fetchmany(3)
for res in Result:
 print(res)

# 多条查询,取所有数据
cursor.execute(sql_select)
Result = cursor.fetchall()
for res in Result:
 print(res)

数据更新与事务回滚

接着展示数据更新方法。


# 更新一条数据
sql_update = """update houses set purchasing_year=2000 where name='菱纱';"""
cursor.execute(sql_update)
cursor.execute(sql_select)
Result = cursor.fetchall()
for res in Result:
 print(res)
# 更新多条数据
sql_update = """update houses set purchasing_year=%s where name=%s;"""
cursor.executemany(sql_update,[(2018,'梦璃'),(2019,'紫英')])
cursor.execute(sql_select)
Result = cursor.fetchall()
for res in Result:
 print(res)
# 回滚事务
db.rollback()
cursor.execute(sql_select)
Result = cursor.fetchall()
for res in Result:
 print(res)

数据删除逻辑处理

最后说明数据删除逻辑。


# 删除1条数据
sql_delete = """delete from houses where name='梦璃';"""
cursor.execute(sql_delete)
cursor.execute(sql_select)
Result = cursor.fetchall()
for res in Result:
 print(res)
# 删除多条数据
sql_delete = """delete from houses where name=%s;"""
cursor.executemany(sql_delete,[('天河'),('紫英')])
cursor.execute(sql_select)
Result = cursor.fetchall()
for res in Result:
 print(res)

资源释放与连接关闭

操作完成后,需关闭游标并断开数据库连接以释放资源。


cursor.close()           # 关闭游标
db.commit()
db.close()            # 关闭数据库连接
print('sql执行成功')

总结

至此,关于Python接入MySQL实现增删改查的完整流程已介绍完毕。如需了解更多Python与MySQL交互的相关内容,建议查阅本站过往文章或继续浏览后续教程,感谢大家的支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。