一、分析
1.1业务分析
学生信息管理系统是一种面向学生和教师的多功能数据管理平台
1.2分析系统
本系统面向的用户有学校在校学生和教师,对于不同的用户,系统将提供不同权限的功能。
对于学生用户,用户可以通过系统进行自身数据的查询,部分数据的修改。对于教师用户,可以通过系统查询自身数据,课程数据以及学生成绩管理等。
二、构建模型
2.1 概念模型:ERP模型
2.2 数据模型:设计表格
2.2.1 将ERP模型转化为关系模式
学生(学号 姓名 性别 年龄 电话 院系 宿舍号)
教师(教师编号 姓名 年龄 性别 职称 )
院系(院系名 学生人数 教师人数 院长 办公电话)
课程(课程编号 课程名称 授课教师编号 学时)
宿舍(宿舍编号 宿舍名)
2.2.2 设计表格
学生表:
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
stu_id | int | 14 | 是 | 学生表主键 |
stu_name | varchar | 10 | ||
stu_age | int | 10 | ||
stu_gender | char | 1 | ||
stu_phone | varchar | 11 | ||
stu_faculty | varchar | 10 | ||
dor_id | varchar | 8 |
课程表:
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
cou_id | varchar | 5 | 是 | 课程表主键 |
cou_name | varchar | 20 | ||
tea_id | int | 8 | ||
cou_time | int | 3 |
教师表:
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
tea_id | int | 8 | 是 | 教师表主键 |
tea_name | varchar | 8 | ||
tea_age | int | 3 | ||
tea_gender | char | 1 | ||
stu_faculty | varchar | 20 | ||
tea_title | varchar | 5 |
院系表:
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
fac_name | varchar | 20 | 是 | 院系表主键 |
stu_num | int | 10 | ||
tea_num | int | 10 | ||
fac_dean | varchar | 10 | ||
landline | int | 12 |
成绩表:
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
stu_id | varchar | 12 | 是 | 成绩表主键 |
cou_id | varchar | 5 | 是 | 成绩表主键 |
scores | int | 3 |
三、创建表格
利用sql语句按照上述构建的模型创建表格
create table student(
stu_id varchar(12) primary key auto_increment,
stu_name varchar(8),
stu_age int(3),
stu_gender char(1),
stu_phone varchar(11),
stu_faculty varchar(20),
dor_id varchar(8));
create table teacher(
tea_id int(8) primary key auto_increment,
tea_name varchar(8),
tea_age int(3),
tea_gender char(1),
stu_faculty varchar(20),
tea_title varchar(5));
create table faculty(
fac_name varchar(20) primary key,
stu_num int(10),
tea_num int(10),
fac_dean varchar(5),
landline int(12));
create table course(
cou_id int(5) primary key auto_increment,
cou_name varchar(20),
tea_id int(8),
cou_time int(3));
create table dormitory(
dor_id varchar(8),
dor_name varchar(8));
create table score(
stu_id varchar(12),
cou_id int(5),
scores int(3),
primary key(stu_id,cou_id));
四、插入数据
insert into student values
('202206164101','功晓彤','17','女','13068397177','计算机系','D101'),
('202206164102','赵若兰','18','女','18884765124','英语系','D101'),
('202206164103','兆长旭','17','男','15421665961','数学系','D102'),
('202206164104','仵飞双','19','男','18924618953','计算机系','D102'),
('202206164105','司马孤风','20','男','17451658127','政治系','D102'),
('202206164106','段干承允','18','女','18886689688','物理系','D101')
insert into teacher values
('2016001','谢滨','34','男','物理系','高级教师'),
('2016002','虎代蓝','32','男','数学系','高级教师'),
('2016003','莫秋珊','29','女','英语系','高级教师'),
('2016004','郝一南','27','男','计算机系','中级教师'),
('2016005','栾君丽','26','女','政治系','中级教师'),
('2016006','田婉君','26','女','英语系','中级教师')
insert into faculty values
('计算机系','2','1','拓跋鸿博','7654321'),
('物理系','1','1','呼延晓兰','8765432'),
('英语系','1','2','郗慕晴','9876543'),
('数学系','1','1','费莫承基','1234567'),
('政治系','1','1','赫连中震','2345678')
insert into course values
('C001','Java程序设计语言基础','2016004','68'),
('C002','高等数学','2016002','68'),
('C003','大学英语','2016003','68'),
('C004','英语口语','2016006','34'),
('C005','大学物理','2016001','132'),
('c006','马原','2016005','34')
insert into score values
('202206164101','C001','96'),
('202206164101','C002','95'),
('202206164101','C003','85'),
('202206164101','C006','95'),
('202206164102','C003','95'),
('202206164102','C004','75'),
('202206164102','C006','84'),
('202206164103','C002','67'),
('202206164103','C003','86'),
('202206164103','C006','75'),
('202206164104','C001','98'),
('202206164104','C002','97'),
('202206164104','C003','89'),
('202206164104','C006','94'),
('202206164105','C003','84'),
('202206164105','C006','89'),
('202206164106','C002','93'),
('202206164106','C003','88'),
('202206164106','C005','79'),
('202206164106','C006','94')
insert into dormitory values
('D101','女寝'),
('D102','男寝')
五、维护数据:
5.1 查询学生所有信息
select * from student;
5.2 查询老师所有信息
select * from teacher;
5.3 查询选课了高等数学科目的学生信息
select student.*,course.cou_name from student join score on student.stu_id = score.stu_id
join course on course.cou_id = score.cou_id
where course.cou_name = '高等数学';
5.4 对应科目的老师信息
select teacher.*,course.cou_name from teacher join course on teacher.tea_id = course.tea_id
5.5 修改学生信息
这里将学号为202206164101的学生电话改为13068389999
update student set stu_phone = '13068389999' where stu_id = '202206164101';
5.6 删除学号为202206164105的学生信息
delete from student where stu_id = '202206164105';
5.7 学号为202206164101的学生选择物理课程
insert into score value('202206164101','C005',null)
5.8 查询年龄不小于20岁的学生信息
select * from student where stu_age >=20;
没有
5.9 学号为202206164101的学生修改其电话号码
update student set stu_phone = '13068389999' where stu_id = '202206164101';