Python操作MySQL的从入门到实战指南
作者:·云扬·
本文介绍了使用Python操作MySQL的全过程,包括环境准备、Python基础回顾、实战操作等,环境准备中提到安装Python和VSCode,并推荐安装插件,Python基础回顾部分简要介绍了注释、数据类型、条件判断、循环和函数等内容,需要的朋友可以参考下
1 基础环境准备
想要顺利进行后续操作,先把基础环境搭好,这一步很简单,跟着官网指引来就行~
1.1 Windows 安装 Python3
- 官方下载地址:https://www.python.org/downloads/
- 安装注意:勾选「Add Python to PATH」,这样后续在命令行就能直接调用 Python 啦
1.2 安装 VS Code
- 官方下载地址:https://code.visualstudio.com/
- 推荐插件:Python(微软官方插件)、Code Runner(一键运行代码)
1.3 创建 Python 文件
打开 VS Code → 新建文件 → 保存为 mysql_operation.py(后缀必须是 .py),准备开始写代码~
2 Python 基础快速回顾
如果是刚学 Python 的同学,先掌握这些基础就够了,后续操作都会用到~
2.1 注释(代码说明很重要)
# 单行注释:用 # 开头,注释一行内容 # 下面是多行注释,用三个单引号或双引号包裹 ''' 多行注释第一行 多行注释第二行 ''' """ 双引号版多行注释 适合注释较长的说明 """

2.2 常用数据类型
# 整数类型:用于存储年龄、编号等整数
age = 25
# 浮点数类型:用于存储小数
pi = 3.14
print(type(pi)) # 输出 <class 'float'>,查看数据类型
# 字符串类型:用于存储姓名、文本等
name = "maria"
print(type(name)) # 输出 <class 'str'>
# 输出方式示例
print("你好,Python!") # 直接输出字符串
print(name) # 输出变量
print("名字是:", name) # 字符串和变量组合输出

2.3 条件判断(根据条件执行不同逻辑)
score = 91
score = 91
if score >= 90:
print("优秀") # 满足条件时执行
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格") # 所有条件都不满足时执行

2.4 循环(重复执行代码)
# for 循环:遍历字符串、列表等
name = "maria"
for char in name:
print(char) # 依次输出 m、a、r、i、a
# while 循环:根据条件重复执行
name = "maria"
index = 0
while index<len(name): # len(name) 是字符串长度(5)
char = name[index]
print(char)
index += 1 # 索引自增,避免死循环

2.5 函数(封装可复用的代码)
# 定义函数:求两个数的最大值
def max_value(a, b):
if a > b:
return a # 返回较大值
else:
return b
# 调用函数
result = max_value(2, 3)
print(result) # 输出 3

3 Python 操作 MySQL 实战
这部分是核心!教大家用 Python 对 MySQL 执行增删查改(CRUD)操作~
第一步:创建 MySQL 测试环境
先在 MySQL 中创建测试表和专用用户,避免使用 root 用户直接操作(安全规范)。
-- 创建测试表 test_table CREATE TABLE test_table ( id INT AUTO_INCREMENT PRIMARY KEY, # 自增主键 name VARCHAR(255), # 姓名 age INT # 年龄 ); -- 创建 Python 专用操作用户 CREATE USER 'python_rw'@'%' IDENTIFIED BY 'Idyq8_a1'; -- 授予增删查改等权限(根据实际需求调整) GRANT create,alter,insert,delete,select,update ON *.* TO 'python_rw'@'%';

第二步:安装 MySQL 连接模块
Python 本身不支持直接连接 MySQL,需要安装第三方模块:
pip install pymysql==1.1.0
(如果提示 pip 不是内部命令,检查 Python 是否添加到环境变量)
第三步:Python 增删查改完整代码
把以下代码复制到 mysql_operation.py 中,修改数据库连接信息即可使用~
# 导入 pymysql 库
import pymysql
from pymysql.err import OperationalError, ProgrammingError
# 1. 建立数据库连接(替换为你的数据库信息)
# 增加连接参数,提升稳定性
config = {
'host': '192.168.184.151', # 数据库地址
'user': 'python_rw', # 用户名
'password': 'Idyq8_a1', # 密码
'database': 'maria', # 数据库名
'charset': 'utf8mb4', # 字符集(避免中文乱码)
'connect_timeout': 10, # 连接超时时间(防止卡死)
'cursorclass': pymysql.cursors.DictCursor # 可选:返回字典格式结果,更易读
}
# 初始化连接和游标为None,避免空对象调用
cnx = None
cursor = None
try:
# 先测试连接是否能成功建立
cnx = pymysql.connect(**config)
print("✅ 数据库连接成功")
# 2. 创建游标对象
cursor = cnx.cursor()
# 3. 插入数据(INSERT)
sql_insert = "INSERT INTO test_table (name, age) VALUES (%s, %s)"
values_insert = ("John", 25)
cursor.execute(sql_insert, values_insert)
cnx.commit()
print(f"📥 数据插入成功,新增记录 ID:{cursor.lastrowid}")
# 4. 查询数据(SELECT)
sql_select = "SELECT * FROM test_table"
cursor.execute(sql_select)
rows = cursor.fetchall()
print("\n📋 查询结果:")
# 适配 DictCursor,用键取值(更直观)
for row in rows:
print(f"ID: {row['id']}, 姓名: {row['name']}, 年龄: {row['age']}")
# 5. 更新数据(UPDATE)
sql_update = "UPDATE test_table SET age = %s WHERE name = %s"
values_update = (30, "John")
cursor.execute(sql_update, values_update)
cnx.commit()
print(f"\n🔄 数据更新成功,影响行数:{cursor.rowcount}")
# 6. 删除数据(DELETE)
sql_delete = "DELETE FROM test_table WHERE name = %s"
values_delete = ("John",) # 单个参数保留逗号
cursor.execute(sql_delete, values_delete)
cnx.commit()
print(f"🗑️ 数据删除成功,影响行数:{cursor.rowcount}")
except OperationalError as e:
# 专门捕获连接相关错误(地址/密码/数据库不存在)
print(f"❌ 数据库连接失败:{str(e)}")
print("请检查:1.数据库地址是否正确 2.用户名/密码是否正确 3.数据库是否存在")
except ProgrammingError as e:
# 专门捕获SQL语法/表不存在错误
print(f"❌ SQL执行失败:{str(e)}")
print("请检查:1.test_table表是否存在 2.字段名(name/age)是否正确")
except Exception as e:
# 其他未知错误
if cnx: # 只有连接成功才回滚
cnx.rollback()
print(f"❌ 操作失败:{str(e)}")
finally:
# 7. 安全关闭游标和连接(判断对象是否存在,避免空指针)
if cursor:
cursor.close()
if cnx:
cnx.close()
print("\n🔌 数据库连接已关闭")

关键注意事项
- 连接信息要替换为你的实际环境(host、database 等)
- 执行插入、更新、删除操作后,必须调用
cnx.commit() - 单个参数的 SQL 语句,values 要加逗号(如
("John",)) - 一定要关闭游标和连接,避免资源泄露
- 建议用 try-except 捕获异常,保证程序稳定性
以上就是Python操作MySQL的从入门到实战指南的详细内容,更多关于Python操作MySQL指南的资料请关注脚本之家其它相关文章!
