常见的视图类型 ·行列子集视图 ·WITH CHECK OPTION的视图 ·基于多个基表的视图 ·基于视图的视图 ·带表达式的视图 ·分组视图
常见的视图类型 ◼ 行列子集视图 ◼ WITH CHECK OPTION的视图 ◼ 基于多个基表的视图 ◼ 基于视图的视图 ◼ 带表达式的视图 ◼ 分组视图
行列子集视图 [例1们 建立植保学院学生的视图,视图中包括 学号、姓名、年龄、学院属性。 CREATE VIEW ZB S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE :Sdept‘植保'; ■从单个基本表导出 ·只是去掉了基本表的某些行和某些列 ·保留了码
行列子集视图 [例1] 建立植保学院学生的视图,视图中包括 学号、姓名、年龄、学院属性。 CREATE VIEW ZB_S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE Sdept= ‘植保' ; ◼ 从单个基本表导出 ◼ 只是去掉了基本表的某些行和某些列 ◼ 保留了码
WITH CHECK OPTIONE的视图 [例2]建立信息学院学生的视图,并要求透过该视图进 行的更新操作只涉及信息学院学生。 CREATE VIEW XX S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE Sdept=信息' WITH CHECK OPTION;
WITH CHECK OPTION的视图 [例2] 建立信息学院学生的视图,并要求透过该视图进 行的更新操作只涉及信息学院学生。 CREATE VIEW XX_S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE Sdept= ‘信息' WITH CHECK OPTION;
对XXS视图的更新操作 修改操作:系统自动检查用户所修改的是否是视图中的数 据,即是否是信息学院的学生信息。是则允许修改,不是 则不允许修改。 删除操作:系统自动检查用户所删除的是否是视图中的数 据,即是否是信息学院的学生信息。是则允许删除,不是 则不允许删除。 ■插入操作:DBMS自动检查Sdept.属性值是否为‘信息', 如果不是,则拒绝该插入操作
对XX_S视图的更新操作 ◼ 修改操作:系统自动检查用户所修改的是否是视图中的数 据,即是否是信息学院的学生信息。是则允许修改,不是 则不允许修改。 ◼ 删除操作:系统自动检查用户所删除的是否是视图中的数 据,即是否是信息学院的学生信息。是则允许删除,不是 则不允许删除。 ◼ 插入操作:DBMS自动检查Sdept属性值是否为‘信息’ , 如果不是,则拒绝该插入操作
基于多个基本表的视图 [例3] 建立水建学院选修了001号课程的学生视图。 CREATE VIEW SJ SC(Sno,Sname,Grade) AS SELECT S.Sno,Sname,Grade FROM S,SC WHERE Sdept=‘水建'AND S.Sno=SC.Sno AND Sc.Cno='001';
基于多个基本表的视图 [例3] 建立水建学院选修了001号课程的学生视图。 CREATE VIEW SJ_SC(Sno,Sname,Grade) AS SELECT S.Sno,Sname,Grade FROM S,SC WHERE Sdept= ‘水建' AND S.Sno=SC.Sno AND SC.Cno= '001';