(1)以Mysql为数据库,围绕班级学生个人信息,课程信息,学生选课信息,学生课程成绩信息,建立实体-关系数据库,要求各表之间有主键、外键。(2)利用python+Mysql 从程序端连写数据库,编写代码,实现学生个人信息录入、学生选课信息录入、学生成绩录入、班级学生成绩查询、班级学生成绩均分、排名查询,查询结果利用Python保存为Excel表格类文件
该回答引用ChatGPT4与博主@晓码自在合作编写:
这里是Python+MySQL实现的数据库设计和操作代码:
sql
-- 学生表
CREATE TABLE student (
id INT PRIMARY KEY, -- 学生ID,主键
name VARCHAR(20), -- 姓名
age INT, -- 年龄
class_id INT -- 班级ID,外键
);
-- 班级表
CREATE TABLE class (
id INT PRIMARY KEY, -- 班级ID,主键
name VARCHAR(20) -- 班级名称
);
-- 课程表
CREATE TABLE course (
id INT PRIMARY KEY, -- 课程ID,主键
name VARCHAR(20) -- 课程名称
);
-- 学生选课表
CREATE TABLE stu_course (
stu_id INT, -- 学生ID,外键
crs_id INT, -- 课程ID,外键
FOREIGN KEY(stu_id) REFERENCES student(id),
FOREIGN KEY(crs_id) REFERENCES course(id)
);
-- 学生成绩表
CREATE TABLE score (
stu_id INT, -- 学生ID,外键
crs_id INT, -- 课程ID,外键
degree INT, -- 成绩
FOREIGN KEY(stu_id) REFERENCES student(id),
FOREIGN KEY(crs_id) REFERENCES course(id)
);
python
import pymysql
import xlsxwriter
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='password', db='school')
# 学生信息录入
def input_student():
...
# 学生选课录入
def input_select_course():
...
# 学生成绩录入
def input_score():
...
# 查询班级学生成绩
def query_score():
...
# 将结果写入Excel
...
# 查询班级学生成绩均分和排名
def query_avg_rank():
...
# 将结果写入Excel
...
# 调用函数实现业务
input_student()
input_select_course()
input_score()
query_score()
query_avg_rank()
代码连接MySQL数据库,调用相关函数实现数据录入和查询,将Excel结果写入xlsx文件。
vous需要补全具体函数的实现逻辑。
需要的话,我可以写
可以使用使用pymysql第三方库操作数据库,需要可代写