当前位置:首页>python>Python操作MySQL保姆级教程!从环境搭建到CRUD实战,新手也能秒会

Python操作MySQL保姆级教程!从环境搭建到CRUD实战,新手也能秒会

  • 2026-09-30 12:19:01
Python操作MySQL保姆级教程!从环境搭建到CRUD实战,新手也能秒会
🔥 前言:最近好多粉丝私信我,说想知道怎么用 Python 快速操作 MySQL 数据库,不管是做数据分析、开发小工具还是毕业设计,这都是高频需求!今天特意整理了一份「从 0 到 1」的完整教程,代码全部实测可用,新手跟着步骤走,半小时就能上手~ 话不多说,直接上干货!

📌 一、基础环境准备(3 步搞定)

想要顺利操作,先把基础环境搭好,超简单!

1. 安装 Python3(Windows 版)

官方下载:https://www.python.org/downloads/
✨ 关键步骤:安装时一定要勾选「Add Python to PATH」,不然命令行找不到 Python 哦~

2. 安装 VS Code(代码编辑器)

官方下载:https://code.visualstudio.com/
📚 推荐插件:Python(微软官方,必装)、Code Runner(一键运行代码,超方便)

3. 创建 Python 文件

打开 VS Code → 新建文件 → 保存为mysql_operation.py(后缀必须是 .py),准备写代码啦~

📌 二、Python 基础快速回顾(新手必看)

如果是刚学 Python 的同学,先掌握这些核心知识点,后续操作都能用得上!

1. 注释(给代码写 “说明书”)

# 单行注释:用 # 开头,注释一行内容# 下面是多行注释,用三个单引号或双引号包裹'''多行注释第一行多行注释第二行'''"""双引号版多行注释适合注释较长的说明"""

2. 常用数据类型

# 整数(年龄、编号)age = 25# 浮点数(小数)pi = 3.14# 字符串(姓名、文本)name = "maria"# 输出示例print("名字是:", name)  # 结果:名字是:maria

3. 条件判断(根据情况执行不同逻辑)

score = 91if score >= 90:    print("优秀")elif score >= 80:    print("良好")else:    print("及格/不及格")

4. 循环(重复执行代码)

# for 循环:遍历字符串name = "maria"for char in name:    print(char)  # 依次输出 m、a、r、i、a

5. 函数(封装可复用的代码)

# 定义函数:求两个数的最大值def max_value(a, b):    return a if a > b else b# 调用函数result = max_value(2, 3)print(result)  # 输出 3

🚀 三、Python 操作 MySQL 实战(核心内容)

这部分是重点!教大家用 Python 实现 MySQL 的「增删查改」(CRUD),直接复制代码就能用~
第一步:先在 MySQL 中创建测试环境
先手动在 MySQL 中执行以下 SQL,创建测试表和专用用户(避免用 root 直接操作,更安全):
-- 1. 创建测试表 test_tableCREATE TABLE test_table (  id INT AUTO_INCREMENT PRIMARY KEY,  # 自增主键  name VARCHAR(255),  # 姓名  age INT  # 年龄);-- 2. 创建 Python 专用操作用户CREATE USER 'python_rw'@'%' IDENTIFIED BY 'Idyq8_a1';-- 3. 授予权限(增删查改)GRANT insert,delete,select,update ON *.* TO 'python_rw'@'%';
第二步:安装 MySQL 连接模块
Python 不能直接连 MySQL,需要装个第三方模块,打开命令行执行:
pip install pymysql==1.1.0
✅ 提示:如果报错 “pip 不是内部命令”,回去检查 Python 是否添加到 PATH 哦~
第三步:增删查改完整代码(直接用)
把以下代码复制到中,替换数据库连接信息(host、database 等),运行即可看到效果!
# 导入 pymysql 库import pymysqlfrom 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 = Nonecursor = Nonetry:    # 先测试连接是否能成功建立    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🔌 数据库连接已关闭")

⚠️ 关键注意事项(避坑指南)

  1. 连接信息一定要替换成自己的(host、database、用户名密码);
  2. 执行插入 / 更新 / 删除后,必须调用 cnx.commit(),否则数据不生效;
  3. 单个参数的 SQL 语句,values 要加逗号(比如 ("John",)),不然会报错;
  4. 一定要关闭游标和连接,避免资源泄露;
  5. 用 try-except 捕获异常,程序更稳定,还能看到报错原因。

💬 互动时间

如果操作过程中遇到问题(比如连接失败、权限不足、代码报错),欢迎在评论区留言告诉我具体情况,我会第一时间帮你解决~

最新文章

随机文章