如何使用 Python 连接 MySQL 数据库,并实现 CRUD(创建、读取、更新、删除)操作。
1、连接数据库
import?mysql.connector
#?数据库连接信息
config?=?{
??'user':?'your_username',??#?替换为你的数据库用户名
??'password':?'your_password',??#?替换为你的数据库密码
??'host':?'localhost',??#?替换为你的数据库主机地址
??'database':?'your_database'??#?替换为你的数据库名称
}
#?连接数据库
connection?=?mysql.connector.connect(**config)
#?创建游标对象
cursor?=?connection.cursor()
2、使用SQL 语句创建表
CREATE?TABLE?students?(
??id?INT?AUTO_INCREMENT?PRIMARY?KEY,
??name?VARCHAR(255)?NOT?NULL,
??age?INT,
??major?VARCHAR(255)
);
3、实现 CRUD 操作(增删改查)
- 创建 (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,?"计算机科学")
- 读取 (Read)
def?get_all_students():
??"""获取所有学生记录。
??"""
??sql?=?"SELECT?*?FROM?students"
??cursor.execute(sql)
??students?=?cursor.fetchall()??#?获取所有结果
??for?student?in?students:
????print(student)
#?示例用法
get_all_students()
- 更新 (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
- 删除 (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?的学生记录
4、关闭连接
#?关闭游标和连接
cursor.close()
connection.close()