//某学院管理系统有如下表:
//课程表:课程号,课程名,任课老师姓名,学时数。
//学生表:学号,学生姓名,性别,年级。
//选课表:课程号,学号,成绩。
//要求:1,使用sql渔具建立以上三个表,需要主键,外键。
// 2,建立视图,对于每门课程,列出课程号,课程名以及不及格学生人数。
// 注:不需要在电脑上建表,只需要写出sql语句,保存在文本中即可。
1,
creat table student
(
sno smallint primary key,
sname char(20) unique,
ssex char(2),
gradno smallint
);
creat table course
(
cno smallint primary key,
cname char(20) unique,
techername char(20) unique,
classtime smallint
);
creat table s_c
(
cno smallint,
sno smallint,
score smallint,
primary key(sno,cno),
foreign key(sno) reference student(cno),
foreign key(cno) reference course(no)
);
2,第一步,先建立不及格学生的视图。
creat view badst(cno,cname,sno,score)
as
select course.cno,cname,sno,score
from s_c,course
where score<60 and
course.no=s_no
;
第二步,建立最终目标视图。
creat view bsn(cno,cname,badno)
as
select distinct cno,cname,count(sno)
from badst
group by cno;
;