行列子集视图 「例1建立信息系学生的视图。 CREATEⅤ IEW IS Student AS SELECT SnO, Sname, Sage FROM Student WHERE Sdept="IS; 从单个基本表导出 只是去掉了基本表的某些行和某些列 保留了码
行列子集视图 [ 例1] 建立信息系学生的视图。 建立信息系学生的视图。 CREATE VIEW IS_Student CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student FROM Student WHERE Sdept= 'IS'; 从单个基本表导出 从单个基本表导出 只是去掉了基本表的某些行和某些列 只是去掉了基本表的某些行和某些列 保留了 码
建立视图(续) WITH CHECK OPTION 透过视图进行增删改操作时,不得破坏视 图定义中的谓词条件 (即子查询中的条件表达式)
建立视图(续) 建立视图(续) z WITH CHECK OPTION WITH CHECK OPTION 透过视图进行增删改操作时,不得破坏视 透过视图进行增删改操作时,不得破坏视 图定义中的谓词条件 图定义中的谓词条件 (即子查询中的条件表达式) (即子查询中的条件表达式)
WITH CHECK OPTION的视图 [例2]建立信息系学生的视图,并要求透过该视 图进行的更新操作只涉及信息系学生。 CREATE VIEW IS Student SELECT SnO, Sname, Sage FROM Student WheRE Sdept='IS WITH CHECK OPTION
WITH CHECK OPTION WITH CHECK OPTION的视图 [ 例2] 建立信息系学生的视图,并要求透过该视 图进行的更新操作只涉及信息系学生。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS' WITH CHECK OPTION;
对| s Studen视图的更新操作 ●修改操作:DBMS自动加上 Sdept=S的条件 ●删除操作:DBMS自动加上 Sdept='IS的条件 ●插入操作:DBMS自动检查 Sdept)属性值是否为sS" 如果不是,则拒绝该插入操作 如果没有提供 Sdept/属性值,则自动定义 Sdept 为IS
对IS_Student IS_Student视图的更新操作 视图的更新操作 z 修改操作:DBMS自动加上Sdept= 'IS'的条件 z 删除操作:DBMS自动加上Sdept= 'IS'的条件 z 插入操作:DBMS自动检查Sdept属性值是否为'IS' – 如果不是,则拒绝该插入操作 – 如果没有提供Sdept属性值,则自动定义Sdept 为'IS
基于多个基表的视图 [例4]建立信息系选修了1号课程的学生视图。 CREATE VIEW IS SI(Sno, Sname, Grade AS SELECT Student Sno, Sname, Grade FROM Student, SC WhERE Sdept= IS aND Student. Sno=SCSno and SC Cno=1
基于多个基表的视图 基于多个基表的视图 [ 例4] 建立信息系选修了 1号课程的学生视图。 CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept= 'IS' AND Student.Sno=SC.Sno AND SC.Cno= '1';