Python如何执行MySQL语句:从连接到操作的完整指南
Python执行MySQL语句的核心方法是使用数据库连接驱动(如mysql-connector-python或PyMySQL)建立连接后,通过游标对象执行SQL命令。 这一过程不仅涉及基础的查询操作,还包括事务管理、错误处理以及性能优化等多个关键环节,掌握这些技能,能够帮助开发者高效、安全地在Python应用中操作MySQL数据库。
环境准备与驱动安装
在开始之前,首先需要确保已安装Python的MySQL驱动,常用的驱动有:

- mysql-connector-python(官方驱动)
- PyMySQL(纯Python实现,兼容性好)
通过pip安装:
pip install mysql-connector-python # 或 pip install pymysql
建立数据库连接
使用驱动创建与MySQL服务器的连接是第一步,需要提供主机地址、用户名、密码和数据库名等参数:
import mysql.connector
conn = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
务必妥善保管连接参数,避免硬编码在代码中,建议使用环境变量或配置文件管理敏感信息。
创建游标并执行SQL语句
连接成功后,通过游标(cursor)执行SQL语句:
cursor = conn.cursor()
# 执行查询语句
cursor.execute("SELECT * FROM users WHERE age > %s", (18,))
# 获取结果
results = cursor.fetchall()
for row in results:
print(row)
游标是执行SQL和获取结果的关键对象,支持多种数据获取方式(如fetchone、fetchmany)。
执行不同类型的SQL操作
查询操作(SELECT)
使用execute()执行查询,并通过游标方法获取结果集。参数化查询能有效防止SQL注入,务必使用占位符(如%s)而非字符串拼接。
插入、更新与删除(INSERT/UPDATE/DELETE)
执行写操作后,需要提交事务使更改生效:
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ("Alice", 25))
conn.commit() # 提交事务
忘记提交是常见错误,会导致数据未持久化到数据库。
批量操作
对于大量数据操作,使用executemany()提升效率:
data = [("Bob", 30), ("Charlie", 35)]
cursor.executemany("INSERT INTO users (name, age) VALUES (%s, %s)", data)
conn.commit()
错误处理与资源管理
数据库操作中必须包含异常处理,并确保资源正确释放:
try:
cursor.execute("SELECT * FROM non_existent_table")
except mysql.connector.Error as err:
print(f"数据库错误: {err}")
finally:
cursor.close()
conn.close()
始终在finally块中关闭游标和连接,避免资源泄漏。
使用上下文管理器简化操作
Python的上下文管理器(with语句)可自动管理资源:
with mysql.connector.connect(...) as conn:
with conn.cursor() as cursor:
cursor.execute("SELECT * FROM products")
results = cursor.fetchall()
这种方式代码更简洁且安全,连接和游标会在退出时自动关闭。
高级功能与最佳实践
- 使用字典游标:
cursor = conn.cursor(dictionary=True)使结果以字典形式返回,提高代码可读性 - 连接池管理:在高并发应用中使用连接池(如
mysql.connector.pooling)提升性能 - ORM工具:对于复杂应用,考虑使用SQLAlchemy等ORM框架,简化数据库操作
Python执行MySQL语句是一个系统过程,从驱动选择、连接建立到SQL执行和资源管理,每个环节都需谨慎处理。掌握参数化查询、事务提交和错误处理是编写健壮数据库应用的基础,随着应用复杂度增加,合理使用连接池和ORM工具能进一步提升开发效率和系统性能,通过不断实践这些技术,您将能够构建出高效、安全的Python数据库应用程序。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/16956.html发布于:2026-09-15





