--(1)建立查询信息管理系学生的学号、姓名、性别和年龄的视图。
create view find1 as select sno 学号,sname 姓名,ssex 性别,sage 年龄
from student
where Dept='信息管理系';
--(2)建立查询信息管理系选了C001课程的学生学号、姓名和成绩的视图。
create view find2 as select s.sno 学生学号,sname 姓名,grade 成绩
from student s join SC c on s.sno=c.sno
where Cno='C001' and Dept='信息管理系';
--(3)利用第1题建立的视图,建立查询信息管理系1991年之后出生的学生学号、姓名和年龄的视图。
create view find3 as select sno 学生学号,sname 姓名,sage 年龄
from find1 where Sage<32;
--(4)定义一个查询学生出生年份的视图,内容包括学号,姓名和出生年份。
create view find4 as select sno 学号,sname 姓名,2023-sage 出生年份
from student ;
--(5)定义一个查询每个学生的学号及平均成绩的视图S_G。
create view S_G as select sno 学号 , avg(grade)平均成绩
from SC
where Grade is not null group by Sno ;
--(6)利用第1题建立的视图,查询信息管理系男生的信息。
select * from find1 where 性别='男';
--(7)查询信息管理系选修了“C001”号课程且成绩大于等于60的学生的学号、姓名和成绩。
select 学生学号, 姓名, 成绩 from find2 where 成绩>=60;
--(8)查询信息管理系学生的学号、姓名、所选课程名
select s.sno 学号,sname 姓名 ,cno 所选课程名
from student s join SC c on s.sno =c.sno
where Dept='信息管理系';
--(9)利用第5题建立的视图,查询平均成绩大于等于80的学生的学号和平均成绩。
select 学号,平均成绩 from find5 where 平均成绩 >=80 ;
--(10)修改S_G视图,使其统计每个学生的考试平均成绩和修课总门数。
alter view S_G
as
select AVG(grade) 平均成绩,COUNT(*) 选课总门数
from SC
group by Sno ;