1 分析
1.1 业务分析:
学生信息管理系统是高校面向教师和学生设计的一个多功能数据管理平台,本篇文章针对学生信息管理系统的数据库进行分析。
1.2 系统分析:
(1)用户:学生,教师
(2)功能:学生和教师信息的增删查改,教师为学生学科成绩打分,学生查看学科对应的教师信息,学生查看自己的成绩等等。
1.2.1 学生用户
对于学生用户需要实现的功能有:
(1)学生查看自己的信息,进行增删改查处理;
(2)学生根据自己的课程编号,学号进行查询自己的成绩;
(3)学生查询课程信息和任课老师信息;
等等。
1.2.2 教师用户
对于教师用户需要实现的功能有:
(1)教师查看自己的信息,进行增删改查处理;
(2)教师查询学生信息
(3)教师根据课程编号给学生成绩;
(4)教师查询学生成绩的最高分,平均分;
2 构建模型
2.1 概念模型(ERP模型)
根据上述的学生信息管理系统功能分析,得到本系统需要的实体有:学生、教师、成绩、课程等,并根据系统所需的功能,分析实体所需要的属性,画出如下E-R图。
2.2.1 E-R图
2.2 数据模型
2.2.1 将ERP模型转化为关系模式
按照E-R图转换为关系模式的规则,将上述E-R图转换,得到的关系模式为:
学生(学生学号、姓名、年龄、性别、户籍);
教师(教师编号、姓名、年龄、性别、户籍);
课程(课程编号、课程名称、教师编号、课程时间);
成绩(课程编号、学生学号、分数);
2.2.3 设计表格
(1)学生表(student)
名 类型 长度 不是null 键 注释
stu_id int 20 √ 🔑 学生学号
stu_name varchar 20 √ 学生姓名
stu_age varchar 20 √ 学生年龄
stu_gander varchar 10 √ 学生性别
stu_address varchar 30 √ 学生户籍
(2)教师表(teacher)
名 类型 长度 不是null 键 注释
tea_id int 20 √ 🔑 教师编号
tea_name varchar 20 √ 教师姓名
tea_int int 20 √ 教师年龄
tea_gander varchar 10 √ 教师性别
tea_address vachar 20 √ 教师户籍
(3)课程表(course)
名 类型 长度 不是null 键 注释
cour_id int 20 √ 🔑 课程编号
cour_name varchar 20 √ 课程姓名
tea_id varchar 20 √ 教师编号
cour_time datatime 225 √ 课程时间
(4)成绩表(score)
名 类型 长度 不是null 键 co
cour_id int 20 √ 🔑 课程编号
stu_id varchar 20 √ 🔑 学生学号
sco_score varchar 10 √ 分数
3 创建表格
由于表格的创建方法都大同小异,这里以学生表为例,创建学生表:
create table student(
stu_id int(20),
stu_name varchar(20),
stu_age varchar(20),
stu_gander varchar(10),
stu_address varchar(30),
primary key(stu_id));
创建成功截图如下:
4 插入数据
由于表格的插入数据的方法都大同小异,这里以学生表在学生表中添加学生信息为例:
这里在student表中添加了一条数据:
insert into student(stu_id,stu_name,stu_age,stu_gander,stu_address)
value(1002,'张一',18,'男','云南');
添加数据成功截图:
5 维护数据
5.1 查询学生所有信息
查询学生表信息代码如下:
select stu_id 学号,stu_age 年龄,stu_name 姓名,stu_gander 性别,stu_address 户籍 from student;
运行结果如下
5.2 查询老师所有信息
查询代码如下:
select tea_id 学号,tea_age 年龄,tea_name 姓名,tea_gander 性别,tea_address 户籍 from teacher;
运行结果如下
5.3 查询每门课程对应的老师信息
查询代码如下:
select
teacher.tea_id 教师编号,
teacher.tea_name 教师姓名,
teacher.tea_age 教师年龄,
teacher.tea_address 教师户籍,
course.cour_id 课程编号,
course.cour_name 课程名称
from teacher
join course on teacher.cou_id = course.cour_id;
运行结果如下
5.4 查询学号101同学的成绩
查询代码如下:
select
student.stu_id 学生编号,
student.stu_name 学生姓名,
student.stu_age 学生年龄,
student.stu_address 学生户籍,
course.cour_id 课程编号,
course.cour_name 课程名称,
score.s_score 课程分数
from student
join score
on student.stu_id = score.stu_id
join course
on course.cour_id = score.cour_id
where student.stu_id = 1001;
运行结果如下
5.5 查询数学成绩表,并排名
查询代码如下:
select
student.stu_id 学生编号,
student.stu_name 学生姓名,
student.stu_age 学生年龄,
student.stu_address 学生户籍,
course.cour_id 课程编号,
course.cour_name 课程名称,
score.s_score 课程分数
from student
join score
on student.stu_id = score.stu_id
join course
on course.cour_id = score.cour_id
where course.cour_id = 102
order by score.s_score desc;
运行结果如下
5.6 查询每门课程的最高分
查询代码如下:
select
course.cour_id 课程编号,
course.cour_name 课程名称,
max(score.s_score) 课程最高分
from score
join course
on score.cour_id = course.cour_id
group by course.cour_name
order by course.cour_id asc;
运行结果如下
免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack