第1关:创建视图
实验完成要求
根据代码区的提示,将SQL语句书写在对应的代码区中。
注:请务必将select子句中出现的列名小写,顺序必须和题目要求一致
1、创建视图vcg,查询课程名为'Math'的课程中,成绩不及格的学生,列出学号,课程号,成绩。 2、修改视图vcg中的数据,将成绩加5分
3、删除视图vcg中的数据,将成绩小于40分的选课信息删除。
Create view vcg
as
select sno,cno,grade
from SC
where cno in(select cno from Course where cname='Math') and grade<60;
update vcg
set grade=grade+5;
delete
from vcg
where grade<40;
第2关:创建和使用视图
实验完成要求
根据代码区的提示,将SQL语句书写在对应的代码区中。
注:请务必将select子句中出现的列名小写,顺序必须和题目要求一致
1、创建视图vsumc,使其包含每个选了课的学生获得的学分(成绩及格才能得学分)。列出学号和总学分(列名:ssumc)。
2、使用vsumc视图,查询男同学总学分高于12分的学生的学号,姓名,性别。
3、使用vsumc视图,查询总学分最高的学生,列出学号,姓名,性别,年龄,所在系
4、使用vsumc视图,查询平均分大于等于65分的学生的学号,平均分(列名:savg),总学分(列名:ssumc)
create view vsumc(sno,ssumc)
as
select sno,sum(ccredit)
from SC,Course
where grade>=60 and Course.cno=SC.cno
group by sno;
select sno,sname,ssex
from Student
where ssex='m'
and exists(select * from vsumc where sno=student.sno and ssumc>12);
select vsumc.sno,sname,ssex,sage,sdept
from vsumc,Student
where ssumc >= all(
select ssumc from vsumc
) and Student.sno = vsumc.sno;
select SC.sno, avg(grade) savg,ssumc
from vsumc,SC
where SC.sno=vsumc.sno
group by SC.sno,ssumc
having avg(grade)>=65;