一、分析
----业务分析
………学生信息管理系统时面向学生和学校教师的一个多功能数据管理平台
----分析系统:系统面向的用户、系统的功能
本系统所设计到的用户有学校在校学生、教师,对于不同的用户系统所提供给的功能也有所不同,其中对于学生来说,学生可以提供该系统进行自身数据的查询,教师可以通过该系统实现对自身数据查询、学生成绩管理等。
二、构建模型
2.1 概念模型:ERP模型
2.2 数据模型:设计表格
2.2.1 将ERP模型转化为关系模式eg:
按照将E-R图转换为关系模式的规则,将上图所示E-R图转换,得到的关系模式为:
学生(姓名,班级,寝室号,学号,性别、年龄,电话)
教师(姓名,专业,教师号,学科号,教室)
学院(专业,班级,学科号,学号,班级人数,教师号,辅导员)
课程(学科号,学科,教师号,教室)
宿舍(寝室号,寝室人数,寝室成员)
2.2.2 设计表格
学生表:
教师表:
学院表:
课程表:
宿舍表:
三、创建表格
利用sql语句按照上述构建的模型创建表格
create table student(
stu_name varchar(255),
class varchar(255),
dor_id varchar(255),
stu_id int(10),
stu_gender varchar(255),
stu_age int(10),
stu_telephone varchar(255),
primary key(stu_id));
create table teacher(
tea_name varchar(255),
class varchar(255),
teat_id int(10),
cur_id varchar(255),
room varchar(255),
primary key(teat_id));
create table college(
col_major varchar(255),
class varchar(255),
cur_id int(10),
cur_number int(10),
tea_id int(10),
col_instructor varchar(255),
primary key(tea_id));
create table curriculum(
cur_id varchar(255),
cur_subject varchar(255),
teat_id int(10),
room varchar(255),
primary key(teat_id));
create table dorm(
dor_id varchar(255),
dor_number int(10),
dor_member varchar(255),
primary key(dor_id));
五、插入数据
insert into student()
values('小娄','大数据','624','2019001','男','22','15823439688'),
('小罗','大数据','635','2019006','男','22','15823439688'),
('小石','信管','635','2019002','女','21','15823439677'),
('小蒋','物联网','624','2019003','男','20','15823439666'),
('小陈','大数据','635','2019004','男','21','15823439655'),
('小刘','信管','635','2019005','女','22','15823439633'),
('小江','软件工程','624','2019007','女','23','15823439667'),
('小陈','大数据','624','2019009','男','20','15823439677');
insert into teacher()
values('老唐','大数据','202201','01','慎思楼3-302'),
('老赵','物联网','202202','02','慎思楼3-305'),
('老张','信管','202203','03','慎思楼3-307'),
('老李','软件工程','202204','04','慎思楼4-402'),
('老刘','物联网','202205','01','慎思楼4-405'),
('老石','大数据','202206','02','慎思楼4-402'),
('老陈','大数据','202207','03','慎思楼4-407'),
('老徐','信管','202208','01','慎思楼5-302'),
('老许','大数据','202209','02','慎思楼5-305');
insert into college()
values('大数据','2019级一班','01','2019001','57','202201','小任'),
('大数据','2020级一班','02','2019002','52','202206','小任'),
('大数据','2019级二班','03','2019003','53','202207','小任'),
('大数据','2020级二班','02','2019004','40','202209','小任'),
('物联网','2019级一班','02','2019005','45','202202','小伍'),
('物联网','2020级一班','01','2019006','50','202205','小伍'),
('信管','2019级一班','03','2019007','23','202203','小冉'),
('信管','2020级一班','01','2019009','38','202208','小冉'),
('软件工程','2019级一班','04','2019009','60','202204','小殷');
insert into curriculum()
values('01','大数据导论','202201','慎思楼3-302'),
('02','Java编程','202206','慎思楼4-402'),
('02','Java编程','202207','慎思楼4-407'),
('03','机器学习','202209','慎思楼5-305'),
('01','大数据导论','202202','慎思楼3-305'),
('02','Java编程','202205','慎思楼4-405'),
('01','大数据导论','202203','慎思楼3-307'),
('03','机器学习','202208','慎思楼5-302'),
('04','通信原理','202204','慎思楼4-402');
insert into dorm()
values('624','4','小娄,小蒋,小陈,小江'),
('635','4','小石,小刘,小陈,小罗');
五、维护数据:
#5.1 查询学生所有信息
select * from student;
#5.2 查询老师所有信息
select * from teacher;
#5.3 查询选课了大数据导论的学生信息
select stu_name 姓名,calss 班级,dor_id 寝室号,stu_gender 性别,stu.stu_id 学号,stu_age 年龄,stu_telephone 电话,cur_subject 学科 from student stu join college co on stu.stu_id = co.stu_id join curriculum cu on cu.tea_id = co.tea_id where cur_subject = '大数据导论';
#5.4 对应Java编程科目的老师信息
select tea_name 姓名,col_major 专业,t.tea_id 教师号,t.cur_id 学科号,cur_subject 学科,t.room 教室 from curriculum c,teacher t where t.tea_id = c.tea_id;
#5.5修改学生信息
update student set stu_name = '小李' where stu_id = '2019009';
#5.6 删除学号为2019009的学生信息
delete from student where stu_id = 2019009;
#5.7 查询年龄大于21岁的学生信息
select * from student where stu_age > 21;
#5.9 学号为2019007的学生修改其电话号码
update student set stu_telephone = '17798677531' where stu_id = '2019007';