Python 操作 MySQL 数据库

Python 操作 MySQL 数据库

Python 操作 MySQL 最常用、最稳定的库是 pymysql,它纯 Python 实现,安装简单、兼容性好。

一、安装依赖

bash

运行

pip install pymysql

二、基础使用模板(最常用)

python

运行

import pymysql

1. 创建数据库连接

conn = pymysql.connect(

host='localhost', # 主机地址

port=3306, # 端口

user='root', # 用户名

password='你的密码', # 密码

database='test_db', # 数据库名

charset='utf8mb4' # 字符集

)

2. 获取游标(用于执行SQL)

cursor = conn.cursor()

3. 执行SQL语句(示例:查询)

sql = "SELECT * FROM user"

cursor.execute(sql)

获取所有结果

results = cursor.fetchall()

for row in results:

print(row)

4. 关闭游标和连接

cursor.close()

conn.close()

三、常用操作(增删改查)

  1. 查询数据

python

运行

查询一条

cursor.execute("SELECT name, age FROM user WHERE id=1")

one = cursor.fetchone()

print("单条数据:", one)

查询所有

cursor.execute("SELECT * FROM user")

all_data = cursor.fetchall()

print("所有数据:", all_data)

  1. 插入数据

必须 commit 才能真正写入!

python

运行

sql = "INSERT INTO

笔记

Python 操作 MySQL 笔记

一、使用模块

常用:pymysql

安装:pip install pymysql

二、连接数据库

python

运行

import pymysql

conn = pymysql.connect(

host='localhost',

port=3306,

user='root',

password='xxx',

database='test',

charset='utf8mb4'

)

获取游标

cursor = conn.cursor()

三、查询操作

python

运行

执行SQL

cursor.execute("SELECT * FROM user")

获取结果

data1 = cursor.fetchone() # 一条

data2 = cursor.fetchall() # 所有

data3 = cursor.fetchmany(3) # 前3条

四、增删改(必须提交)

插入

python

运行

sql = "INSERT INTO user(name,age) VALUES(%s,%s)"

cursor.execute(sql, ("张三", 20))

conn.commit()

批量插入

python

运行

data = ("a",10), ("b",20)

cursor.executemany(sql, data)

conn.commit()

更新

python

运行

sql = "UPDATE user SET age=25 WHERE id=1"

cursor.execute(sql)

conn.commit()

删除

python

运行

sql = "DELETE FROM user WHERE id=1"

cursor.execute(sql)

conn.commit()

五、异常与回滚

python

运行

try:

cursor.execute(sql)

conn.commit()

except Exception as e:

conn.rollback() # 出错回滚

print(e)

六、关闭

python

运行

cursor.close()

conn.close()

七、常用要点

增删改必须 commit()

查询不用提交

占位符统一用 %s,不要拼接字符串防 SQL 注入

字符集用 utf8mb4 支持表情

异常处理 + 事务回滚

相关推荐
Elastic 中国社区官方博客9 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索
红海云10 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能
wjkjpcba10 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭10 小时前
达梦事物特性及MVCC
linux·运维·数据库
小马同学-10 小时前
MySQL主从复制和读写分离
数据库·mysql
谢亮_vipxieliang11 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
geovindu11 小时前
sql: JSON and XML Data Handling in SQL using sql server 2025
大数据·数据库·sqlserver·数据库开发·数据库架构
IT大白鼠12 小时前
图数据库系列 · 第 02 篇——架构拆解:原生图存储到因果集群
数据库·架构·nosql
EatFan12 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
小蒜学长12 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统