当前位置: 首页 > news >正文

Python 操作 MySQL 数据库

目录

    • 一、安装依赖
    • 二、连接数据库
    • 三、创建表
    • 四、插入数据
    • 五、查询数据
    • 六、更新数据
    • 七、删除数据
    • 八、关闭连接
    • 九、完整示例代码
    • 📌 常见问题

一、安装依赖

推荐使用 pymysql 库,它是纯 Python 实现的 MySQL 客户端,安装方便。

pip install pymysql

二、连接数据库

import pymysql# 建立连接
conn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='test_db',charset='utf8mb4'
)# 创建游标对象
cursor = conn.cursor()
print("连接成功!")

三、创建表

create_table_sql = '''
CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),age INT,email VARCHAR(100)
)
'''cursor.execute(create_table_sql)
print("创建表成功!")

四、插入数据

insert_sql = "INSERT INTO users (name, age, email) VALUES (%s, %s, %s)"
data = ("Alice", 25, "alice@example.com")cursor.execute(insert_sql, data)
conn.commit()
print("插入数据成功!")

批量插入:

users = [("Bob", 30, "bob@example.com"),("Charlie", 22, "charlie@example.com")
]cursor.executemany(insert_sql, users)
conn.commit()

五、查询数据

查询所有数据:

cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()for row in rows:print(row)

条件查询:

cursor.execute("SELECT * FROM users WHERE age > %s", (23,))
results = cursor.fetchall()
for user in results:print(user)

六、更新数据

update_sql = "UPDATE users SET age = %s WHERE name = %s"
cursor.execute(update_sql, (28, "Alice"))
conn.commit()
print("更新成功!")

七、删除数据

delete_sql = "DELETE FROM users WHERE name = %s"
cursor.execute(delete_sql, ("Charlie",))
conn.commit()
print("删除成功!")

八、关闭连接

cursor.close()
conn.close()
print("连接已关闭")

九、完整示例代码

import pymysqlconn = pymysql.connect(host='localhost',port=3306,user='root',password='your_password',database='test_db',charset='utf8mb4'
)cursor = conn.cursor()# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),age INT,email VARCHAR(100)
)
''')# 插入数据
cursor.execute("INSERT INTO users (name, age, email) VALUES (%s, %s, %s)", ("Alice", 25, "alice@example.com"))
conn.commit()# 查询数据
cursor.execute("SELECT * FROM users")
for row in cursor.fetchall():print(row)# 更新数据
cursor.execute("UPDATE users SET age = %s WHERE name = %s", (26, "Alice"))
conn.commit()# 删除数据
cursor.execute("DELETE FROM users WHERE name = %s", ("Alice",))
conn.commit()cursor.close()
conn.close()

📌 常见问题

  • 连接失败?

    • 检查数据库服务是否运行。
    • 检查用户名/密码/端口。
  • 中文乱码?

    • 使用 charset='utf8mb4'
  • SQL 报错?

    • 打印 conn.errorhandler() 里的信息定位错误。

相关文章:

  • EfficientVLA:面向视觉-语言-动作模型无训练的加速与压缩
  • Linux——linux的基本命令
  • 全面掌握 C++ 基础:关键特性与进化
  • 深入理解 Git:从版本控制原理到企业级实践
  • 医疗AI大数据处理流程的全面解析:从数据源到应用实践
  • 【世纪龙科技】智能网联汽车装调仿真教学软件数智化赋能实训教学
  • 有方 N58 LTE Cat.1 模块联合 SD NAND 贴片式 TF 卡 MKDV1GIL-AST,打造 T-BOX 高性能解决方案
  • 解锁数据宝藏:数据挖掘之数据预处理全解析
  • react扩展
  • Flutter ListTile 深度解析
  • 一[3.4]、ubuntu18.04环境 利用 yolov8n-seg实现“列车轨道”区域分割,并提取正确的轨道线【全网最详细】
  • 退出python解释器的四种方式
  • Flang:LLVM Fortran 前端简介
  • IPv4编址及IPv4路由基础
  • python画三维立体图
  • 【支持向量机】SVM线性可分支持向量机学习算法——硬间隔最大化支持向量机及例题详解
  • 用Zynq实现脉冲多普勒雷达信号处理:架构、算法与实现详解
  • Github 热点项目 [特殊字符]PHP性能革命!FrankenPHP让Laravel/Symfony飞起来!
  • 【郑州轻工业大学|数据库】数据库课设-酒店管理系统
  • C# winform教程(二)----GroupBox
  • 做网站上海的备案地址/百度移动应用
  • 黑客零基础入门/seo优化服务价格
  • 网页案例/成都搜索优化排名公司
  • b2b网站怎么做/小红书指数
  • 济南专业网站推广服务热线/香港百度广告
  • 福州做网站的公司/美国最新新闻头条