数据库实验课堂作业-1.4视图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pfl_327/article/details/84027709
  				数据库实验课堂作业
1.4视图 

1.内容:
(1):定义常见的视图形式,包括:
*行列子集视图。
*WITH CHECK OPTON 的视图。
*基于多个基表的视图。
*基于多个视图的视图。
*带表达式的视图。
*分组视图。
(2):通过实验考察 WITH CHECK OPTION 这一语句在视图定义后产生的影响,包括对修改操作,删除操作,插入操作影响。
(3):讨论视图的数据更新情况,对子列视图进行数据更新。
(4):使用DROP语句删除一个视图,由该视图导出的其他视图定义仍然在数据字典中,但已不能使用,必须显示删除。同样的原因,
删除基表时,由该基表导出的所有视图定义都必须显示删除。

二、代码

    use school
    
    CREATE VIEW CS
    AS SELECT NO,SID,CID,SCORE
    FROM CHOICES
    WHERE SCORE>=60
    --(1)定义一个行列子集视图,给出选课成绩合格的学生的编号,所选课程号和成绩
    
    CREATE VIEW SCT
    (SNAME,CNAME,TNAME)
    AS SELECT STUDENTS.SNAME,COURSES.CNAME,TEACHERS.TNAME
    FROM CHOICES,STUDENTS,COURSES,TEACHERS
    WHERE CHOICES.TID=TEACHERS.TID AND CHOICES.CID=COURSES.CID AND CHOICES.SID=STUDENTS.SID
    --(2)定义学生姓名和其所选修的课程名及讲授该课程的教师姓名的视图
    
    CREATE VIEW SCC
    (SNAME,CNAME,SCORE)
    AS SELECT STUDENTS.SNAME,COURSES.CNAME,CHOICES.SCORE+5
    FROM CHOICES,STUDENTS,COURSES
    WHERE CHOICES.CID=COURSES.CID AND CHOICES.SID=STUDENTS.SID
    --(3)定义有学生姓名所选课程名和所有课程成绩都多5分的视图
    
    CREATE VIEW S_G(SID,SAVG)
    AS
      SELECT SID,AVG(SCORE)
      FROM CHOICES
      GROUP BY SID
    --(4)将学生的学号及其平均成绩定义为一个视图,将选课记录按学生分组
    
    CREATE VIEW S_C_S(SID,CCOUNT,SAVG)
    AS
    SELECT SID,COUNT(CS.CID),AVG(SCORE)
    FROM CS
    GROUP BY CS.SID
    --(5)定义一个包括学生编号,学生所选课程数目和平均成绩的视图
    
    SELECT SNAME
    FROM SCT
    WHERE CNAME=’software engineering’
    --(6)检查所有选修课程Software Engineering的学生姓名
    
    INSERT
    INTO CS
    VALUES (’600000000’,’823069829’,’10010’,59)
    
    CREATE VIEW CS
    (NO,SID,CID,SCORE)
    AS SELECT CHOICES.NO, CHOICES.SID,CHOICES.CID,CHOICES.SCORE
    FROM CHOICES
    WHERE CHOICES.SCORE>=60
    WITH CHECK OPTION
    --(7)插入元祖(600000000,823069829,10010,59)到视图CS中
    
    UPDATE CS
    SET SCORE=SCORE-5
    WHERE CID=’10010’
    
    UPDATE CS
    SET SCORE=SCORE+5
    WHERE CID=’10010’ AND SCORE<95
    --(8)将视图CS中,所有课程编号为10010的课程的成绩都减去5分
    
    DELETE CS
    WHERE SID=’804529880’
    --(9)在视图CS删除编号804529880学生的记录
    
    DROP VIEW SCT
    DROP VIEW CS
    --(10)取消视图SCT和视图CS

猜你喜欢

转载自blog.csdn.net/pfl_327/article/details/84027709