为了表达方便,我将科目表和成绩表稍微改了一下。
student(学生信息,包括Sno(学号),Sname(姓名),Sage(年龄),Sdept(班级)),
course(cid(科目ID),cname(科目名称)),
sc(Sno(选课学生学号),scid(学生所选科目ID),其成绩score)
1. 创建一个学生信息视图V_STU。(含Sno,Sname,Sage,Sdept)。
CREATE VIEW V_STU
AS
SELECT Sno,Sname,Sage,Sdept FROM student
GO
2. 在V_STU基础上创建一个年龄在18岁以上的学生信息视图V_STUA(含Sno,Sname,Sage,Sdept)
CREATE VIEW V_STUA
AS
SELECT Sno,Sname,Sage,Sdept V_STUA WHERE Sage > 18
GO
3. 创建一个有学生学号、姓名、课程名及成绩的“200608”班所有同学的视图STU_A。
CREATE VIEW STU_A
AS
SELECT student.Sno,student.Sname,course.cname,sc.score FROM student
JOIN sc ON(student.Sno=sc.Sno)
JOIN course ON(sc.scid=course.cid)
WHERE student.Sdept = '200608'
GO
4. 创建一个有学生学号、学生选课门数的视图C_Stu。
CREATE VIEW C_Stu
AS
SELECT Sno,COUNT(scid) '选课数目' FROM sc GROUP BY Sno
GO
5. 将自己的信息插入到V_STU视图里,注意学号为5位数。
INSERT INTO V_STU VALUES('00000','jeffery','23','200608')
GO
6. 在V_STU视图里将自己的年龄增加一岁
ALTER VIEW V_STU
AS
SELECT Sno,Sname,CASE Sage WHEN Sno='000000' THEN Sage+1 ELSE Sage END,Sdept FROM student
GO
7. 将自己的信息从V_STU视图中删除。
DELETE FROM V_STU WHERE Sno = '000000'
GO
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30046675/viewspace-1358133/ ,如需转载,请注明出处,否则将追究法律责任。