Python3 MySQL 数据库

关系型数据库是后端存储的基石。Python 操作 MySQL 最常用 PyMySQL(纯 Python 实现的驱动,免编译)。掌握连接、游标、增删改查与事务提交,就能把数据可靠地读写进 MySQL。

安装 PyMySQL

pip install pymysql

运行前提:已有可访问的 MySQL 服务,并提前建好目标数据库(如 testdb),然后在代码里配置连接参数。

建立连接

import pymysql

# 需安装依赖并配置环境后运行:pip install pymysql
conn = pymysql.connect(
    host="127.0.0.1",      # MySQL 所在主机
    port=3306,             # MySQL 默认端口
    user="root",           # 用户名
    password="123456",     # 密码,换成你自己的
    database="testdb",     # 要操作的数据库
    charset="utf8mb4",     # UTF-8,支持中文
)

游标与建表

SQL 一律通过"游标"执行:conn.cursor() 拿到游标,再 execute(sql):

cursor = conn.cursor()
cursor.execute("""
    CREATE TABLE IF NOT EXISTS users (
        id INT PRIMARY KEY AUTO_INCREMENT,
        name VARCHAR(50),
        age INT
    )
""")
conn.commit()   # 建表等写操作需提交才生效

增删改查:占位符 %s

参数一律用 %s 占位符 + 参数元组传值,由驱动负责转义,可防 SQL 注入;千万不要用 f-string 拼接 SQL:

cursor = conn.cursor()

# 增
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
cursor.execute(sql, ("张三", 25))
print(cursor.rowcount)   # 输出:1

# 改
cursor.execute("UPDATE users SET age = %s WHERE name = %s", (26, "张三"))

# 查
cursor.execute("SELECT id, name, age FROM users WHERE name = %s", ("张三",))
print(cursor.fetchone())   # 输出:(1, '张三', 26)

# 删
cursor.execute("DELETE FROM users WHERE name = %s", ("张三",))

conn.commit()   # 提交事务,增删改才真正落库

查询结果遍历:fetchall / fetchone

fetchone 取一行,fetchall 取全部,每行是一个元组:

cursor.execute("SELECT id, name, age FROM users")
rows = cursor.fetchall()          # 取回全部结果
for row in rows:                  # 遍历每一行
    print(row)                    # 输出:(1, '李四', 30) 等(内容依数据而定)

事务:commit 与 rollback

写操作默认要 commit 才生效;一批操作中途出错时 rollback 回滚,避免数据"改了一半":

try:
    cursor.execute("UPDATE users SET age = age + 1")
    conn.commit()          # 全部成功 → 提交
except Exception:
    conn.rollback()        # 出错 → 回滚到操作前状态

用 with 自动管理资源

conn.cursor() 支持上下文管理器,with 块结束自动关闭游标:

with conn.cursor() as cursor:      # 游标用后自动关闭
    cursor.execute("SELECT COUNT(*) FROM users")
    print(cursor.fetchone()[0])    # 输出:3(用户总数,依数据而定)
conn.close()                       # 连接用完要关闭

小结:pip 安装 PyMySQL 后,用 connect 传 host/user/password/database 建立连接;游标 execute 执行 SQL、%s 占位符防注入,写操作 commit、出错 rollback,再配合 with 上下文管理资源。

笔记加载中…