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 支持表情

异常处理 + 事务回滚

相关推荐
kirs_ur11 小时前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化
是三一seven11 小时前
Sql注入基础
数据库·安全·网络安全
Sirens.12 小时前
MySQL表设计进阶-约束范式连接索引与事务
android·数据库·mysql
字节跳动开源13 小时前
火山引擎开源 Agent 驱动的搜索自迭代技术
数据库·开源·agent
Oo大司命oO15 小时前
藏在正则表达式里的陷阱
数据库·mysql·正则表达式
_oP_i16 小时前
mysql统计数据库使用存储大小
数据库
会编程的土豆16 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
jjjava2.016 小时前
系统日志:从入门到精通的完整指南
网络·数据库
写代码的强哥16 小时前
云原生数据库与传统数据库相比“新”在哪里
数据库·云原生·架构
许彰午17 小时前
05-十分钟读懂AWR报告
oracle