Python 连接数据库实现 CRUD(MySQL)

本指南将演示如何使用 Python 连接 MySQL 数据库,并实现 CRUD(创建、读取、更新、删除)操作。

1. 准备工作

1.1 安装 MySQL 连接器

使用 pip 安装 mysql-connector-python 库:

pip install mysql-connector-python
1.2 准备数据库和表

确保你有一个可用的 MySQL 数据库,并创建一个用于演示的表。例如,创建一个名为 students 的表,包含以下字段:

  • id: INT, 主键,自增

  • name: VARCHAR(255), 姓名

  • age: INT, 年龄

  • major: VARCHAR(255), 专业

你可以使用以下 SQL 语句创建该表:

CREATE TABLE students (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  age INT,
  major VARCHAR(255)
);

2. 连接数据库

import mysql.connector

# 数据库连接信息
config = {
  'user': 'your_username',  # 替换为你的数据库用户名
  'password': 'your_password',  # 替换为你的数据库密码
  'host': 'localhost',  # 替换为你的数据库主机地址
  'database': 'your_database'  # 替换为你的数据库名称
}

# 连接数据库
connection = mysql.connector.connect(**config)

# 创建游标对象
cursor = connection.cursor()

代码解释:

  1. 导入库: 导入 mysql.connector 库。

  2. 设置连接信息: 创建一个字典 config,包含数据库连接信息,如用户名、密码、主机地址和数据库名称。

  3. 连接数据库: 使用 mysql.connector.connect(**config) 连接数据库。

  4. 创建游标对象: 使用 connection.cursor() 创建一个游标对象,用于执行 SQL 语句。

3. 实现 CRUD 操作

3.1 创建 (Create)
def create_student(name, age, major):
  """创建学生记录。

  Args:
    name: 学生姓名。
    age: 学生年龄。
    major: 学生专业。
  """
  sql = "INSERT INTO students (name, age, major) VALUES (%s, %s, %s)"
  values = (name, age, major)
  cursor.execute(sql, values)
  connection.commit()  # 提交更改到数据库
  print(f"学生记录 '{name}' 已创建。")

# 示例用法
create_student("张三", 20, "计算机科学")

代码解释:

  1. 定义函数 create_student: 该函数接收学生姓名、年龄和专业作为参数,用于创建学生记录。

  2. 构建 SQL 语句: 使用参数化查询构建 SQL INSERT 语句,防止 SQL 注入攻击。

  3. 执行 SQL 语句: 使用 cursor.execute(sql, values) 执行 SQL 语句,并将学生信息作为参数传递。

  4. 提交更改: 使用 connection.commit() 将更改提交到数据库。

3.2 读取 (Read)
def get_all_students():
  """获取所有学生记录。
  """
  sql = "SELECT * FROM students"
  cursor.execute(sql)
  students = cursor.fetchall()  # 获取所有结果
  for student in students:
    print(student)

# 示例用法
get_all_students()

代码解释:

  1. 定义函数 get_all_students: 该函数用于获取所有学生记录。

  2. 构建 SQL 语句: 使用 SELECT * 查询所有学生信息。

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

  4. 获取结果: 使用 cursor.fetchall() 获取所有查询结果,并遍历打印每个学生信息。

3.3 更新 (Update)
def update_student_age(student_id, new_age):
  """更新学生年龄。

  Args:
    student_id: 学生 ID。
    new_age: 新的年龄。
  """
  sql = "UPDATE students SET age = %s WHERE id = %s"
  values = (new_age, student_id)
  cursor.execute(sql, values)
  connection.commit()
  print(f"学生 ID 为 {student_id} 的记录已更新。")

# 示例用法
update_student_age(1, 21)  # 将 ID 为 1 的学生的年龄更新为 21

代码解释:

  1. 定义函数 update_student_age: 该函数接收学生 ID 和新的年龄作为参数,用于更新学生年龄。

  2. 构建 SQL 语句: 使用参数化查询构建 SQL UPDATE 语句。

  3. 执行 SQL 语句: 使用 cursor.execute(sql, values) 执行 SQL 语句,并传递学生 ID 和新的年龄作为参数。

  4. 提交更改: 使用 connection.commit() 将更改提交到数据库。

3.4 删除 (Delete)
def delete_student(student_id):
  """删除学生记录。

  Args:
    student_id: 学生 ID。
  """
  sql = "DELETE FROM students WHERE id = %s"
  values = (student_id,)
  cursor.execute(sql, values)
  connection.commit()
  print(f"学生 ID 为 {student_id} 的记录已删除。")

# 示例用法
delete_student(1)  # 删除 ID 为 1 的学生记录

代码解释:

  1. 定义函数 delete_student: 该函数接收学生 ID 作为参数,用于删除学生记录。

  2. 构建 SQL 语句: 使用参数化查询构建 SQL DELETE 语句。

  3. 执行 SQL 语句: 使用 cursor.execute(sql, values) 执行 SQL 语句,并传递学生 ID 作为参数。

  4. 提交更改: 使用 connection.commit() 将更改提交到数据库。

4. 关闭连接

python
复制代码
# 关闭游标和连接
cursor.close()
connection.close()

代码解释: 完成数据库操作后,记得关闭游标对象和数据库连接,释放资源。

希望本指南能够帮助你理解如何使用 Python 连接 MySQL 数据库并执行 CRUD 操作!

如果对你有帮助,记得点赞分享支持一下~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

途途途途

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值