数据库基础第三章sql语言内容摘要:

的视图 [例 2] 建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生。 CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM Student WHERE Sdept= 39。 IS39。 WITH CHECK OPTION; 对 IS_Student视图的更新操作  修改操作: DBMS自动加上 Sdept= 39。 IS39。 的条件  删除操作: DBMS自动加上 Sdept= 39。 IS39。 的条件  插入操作: DBMS自动检查 Sdept属性值是否为39。 IS39。  如果不是,则拒绝该插入操作  如果没有提供 Sdept属性值,则自动定义 Sdept为 39。 IS39。 基于多个基表的视图 [例 4] 建立信息系选修了 1号课程的学生视图。 CREATE VIEW IS_S1(Sno, Sname, Grade) AS SELECT , Sname, Grade FROM Student, SC WHERE Sdept= 39。 IS39。 AND = AND = 39。 139。 ; 基于视图的视图 [例 5] 建立信息系选修了 1号课程且成绩在 90分以上的学生的视图。 CREATE VIEW IS_S2 AS SELECT Sno, Sname, Grade FROM IS_S1 WHERE Grade=90; 带表达式的视图 [例 6] 定义一个反映学生出生年份的视图。 CREATE VIEW BT_S(Sno, Sname, Sbirth) AS SELECT Sno, Sname, 2020Sage FROM Student 设置一些派生属性列 , 也 称为虚拟列 Sbirth 带表达式的视图必须明确定义组成视图的各个属 性列名 建立分组视图 [例 7] 将学生的学号及他的平均成绩定义为一个视图 假设 SC表中“成绩”列 Grade为数字型 CREAT VIEW S_G(Sno, Gavg) AS SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno; 建立视图(续) 一类不易扩充的视图  以 SELECT * 方式创建的视图可扩充性差,应尽可能避免 例子 建立视图(续) [例 8]将 Student表中所有女生记录定义为一个视图 CREATE VIEW F_Student1(stdnum, name, sex, age, dept) AS SELECT * FROM Student WHERE Ssex=39。 女 39。 ; 缺点:修改基表 Student的结构后, Student表 与 F_Student1视图的映象关系被破坏, 导致该视图不能正确工作。 建立视图(续) CREATE VIEW F_Student2 (stdnum, name, sex, age, dept) AS SELECT Sno, Sname, Ssex, Sage, Sdept FROM Student WHERE Ssex=39。 女 39。 ; 为基表 Student增加属性列不会破坏 Student表 与 F_Student2视图的映象关系。 常见的视图形式  行列子集视图  WITH CHECK OPTION的视图  基于多个基表的视图  基于视图的视图  带表达式的视图  分组视图 2. 删除视图  DROP VIEW 视图名 ;  该语句从数据字典中删除指定的视图定义  由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除  删除基表时,由该基表导出的所有视图定义都必须显式删除 删除视图 (续) [例 9] 删除视图 IS_S1 DROP VIEW IS_S1; 视 图 定义视图 查询视图 更新视图 视图的作用。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。