本指南将演示如何使用 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()
代码解释:
-
导入库: 导入 mysql.connector 库。
-
创建游标对象: 使用 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, "计算机科学")
代码解释:
-
定义函数 create_student: 该函数接收学生姓名、年龄和专业作为参数,用于创建学生记录。
-
构建 SQL 语句: 使用参数化查询构建 SQL INSERT 语句,防止 SQL 注入攻击。
-
执行 SQL 语句: 使用 cursor.execute(sql, values) 执行 SQL 语句,并将学生信息作为参数传递。
-
提交更改: 使用 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()
代码解释:
-
定义函数 get_all_students: 该函数用于获取所有学生记录。
-
构建 SQL 语句: 使用 SELECT * 查询所有学生信息。
-
执行 SQL 语句: 使用 cursor.execute(sql) 执行 SQL 语句。
-
获取结果: 使用 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
代码解释:
-
定义函数 update_student_age: 该函数接收学生 ID 和新的年龄作为参数,用于更新学生年龄。
-
构建 SQL 语句: 使用参数化查询构建 SQL UPDATE 语句。
-
执行 SQL 语句: 使用 cursor.execute(sql, values) 执行 SQL 语句,并传递学生 ID 和新的年龄作为参数。
-
提交更改: 使用 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 的学生记录
代码解释:
-
定义函数 delete_student: 该函数接收学生 ID 作为参数,用于删除学生记录。
-
构建 SQL 语句: 使用参数化查询构建 SQL DELETE 语句。
-
执行 SQL 语句: 使用 cursor.execute(sql, values) 执行 SQL 语句,并传递学生 ID 作为参数。
-
提交更改: 使用 connection.commit() 将更改提交到数据库。
4. 关闭连接
python
复制代码
# 关闭游标和连接
cursor.close()
connection.close()
代码解释: 完成数据库操作后,记得关闭游标对象和数据库连接,释放资源。
希望本指南能够帮助你理解如何使用 Python 连接 MySQL 数据库并执行 CRUD 操作!
如果对你有帮助,记得点赞分享支持一下~