Python 操作 MySQL

举报
鱼弦 发表于 2025/01/25 10:13:28 2025/01/25
【摘要】 Python 操作 MySQL 1. 介绍Python 提供了多种库来操作 MySQL 数据库,最常用的是 mysql-connector-python 和 PyMySQL。通过这些库,可以连接 MySQL 数据库,执行 SQL 查询、插入、更新和删除操作。 2. 应用使用场景Web 开发:如 Django、Flask 等框架与 MySQL 数据库交互。数据分析:从 MySQL 中提取数据...

Python 操作 MySQL

1. 介绍

Python 提供了多种库来操作 MySQL 数据库,最常用的是 mysql-connector-pythonPyMySQL。通过这些库,可以连接 MySQL 数据库,执行 SQL 查询、插入、更新和删除操作。

2. 应用使用场景

  • Web 开发:如 Django、Flask 等框架与 MySQL 数据库交互。
  • 数据分析:从 MySQL 中提取数据进行分析。
  • 自动化脚本:定时从 MySQL 中读取或写入数据。
  • 数据迁移:将数据从一个数据库迁移到另一个数据库。

3. 不同场景下的详细代码实现

场景 1:连接 MySQL 并查询数据

功能:连接 MySQL 数据库,执行查询并输出结果。

安装依赖:
pip install mysql-connector-python
代码实现:
import mysql.connector

# 连接数据库
def connect_db():
    return mysql.connector.connect(
        host="localhost",
        user="root",
        password="password",
        database="testdb"
    )

# 查询数据
def query_data():
    conn = connect_db()
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    result = cursor.fetchall()
    for row in result:
        print(row)
    cursor.close()
    conn.close()

if __name__ == "__main__":
    query_data()
运行效果:
(1, 'Alice', 'alice@example.com')
(2, 'Bob', 'bob@example.com')

场景 2:插入数据

功能:向 MySQL 数据库中插入新数据。

代码实现:
import mysql.connector

# 插入数据
def insert_data(name, email):
    conn = connect_db()
    cursor = conn.cursor()
    sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
    val = (name, email)
    cursor.execute(sql, val)
    conn.commit()
    print(f"插入了 {cursor.rowcount} 条数据")
    cursor.close()
    conn.close()

if __name__ == "__main__":
    insert_data("Charlie", "charlie@example.com")
运行效果:
插入了 1 条数据

场景 3:更新数据

功能:更新 MySQL 数据库中的现有数据。

代码实现:
import mysql.connector

# 更新数据
def update_data(user_id, email):
    conn = connect_db()
    cursor = conn.cursor()
    sql = "UPDATE users SET email = %s WHERE id = %s"
    val = (email, user_id)
    cursor.execute(sql, val)
    conn.commit()
    print(f"更新了 {cursor.rowcount} 条数据")
    cursor.close()
    conn.close()

if __name__ == "__main__":
    update_data(1, "alice_new@example.com")
运行效果:
更新了 1 条数据

场景 4:删除数据

功能:从 MySQL 数据库中删除数据。

代码实现:
import mysql.connector

# 删除数据
def delete_data(user_id):
    conn = connect_db()
    cursor = conn.cursor()
    sql = "DELETE FROM users WHERE id = %s"
    val = (user_id,)
    cursor.execute(sql, val)
    conn.commit()
    print(f"删除了 {cursor.rowcount} 条数据")
    cursor.close()
    conn.close()

if __name__ == "__main__":
    delete_data(3)
运行效果:
删除了 1 条数据

4. 原理解释

  • 连接数据库:通过 mysql.connector.connect() 建立与 MySQL 的连接。

  • 执行 SQL:使用 cursor.execute() 执行 SQL 语句。

  • 提交事务:对于写操作(插入、更新、删除),需要调用 conn.commit() 提交事务。

  • 关闭连接:操作完成后,关闭游标和连接以释放资源。

  • 算法原理

    1. 建立数据库连接。
    2. 创建游标对象。
    3. 执行 SQL 语句。
    4. 获取结果(对于查询)或提交事务(对于写操作)。
    5. 关闭游标和连接。
  • 流程图

    开始 -> 连接数据库 -> 创建游标 -> 执行 SQL -> 获取结果/提交事务 -> 关闭游标和连接 -> 结束
    

5. 测试步骤

  1. 安装依赖:
    pip install mysql-connector-python
    
  2. 创建测试数据库和表:
    CREATE DATABASE testdb;
    USE testdb;
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50),
        email VARCHAR(50)
    );
    
  3. 运行 Python 脚本:
    python mysql_example.py
    
  4. 检查数据库中的数据是否符合预期。

6. 部署场景

  • 本地开发:在本地机器上连接 MySQL 进行开发和测试。
  • Web 应用:将 Python 脚本集成到 Web 应用中(如 Django、Flask)。
  • 云服务器:在云服务器上部署 Python 脚本,连接远程 MySQL 数据库。

7. 材料链接


8. 总结

通过 Python 操作 MySQL 数据库,可以轻松实现数据的增删改查。mysql-connector-pythonPyMySQL 是两个常用的库,适合不同的应用场景。


9. 未来展望

  • ORM 框架:使用 SQLAlchemy 或 Django ORM 简化数据库操作。
  • 异步支持:结合 aiomysql 实现异步数据库操作。
  • 数据安全:加强数据库连接的安全性(如使用 SSL 加密)。
  • 大数据处理:结合 Pandas 或 PySpark 处理大规模数据。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。