文档详情

数据库系统概论-王珊-第四版chp3-3.ppt

发布:2017-12-10约1.02万字共76页下载文档
文本预览下载声明
An Introduction to Database System 查询视图(续) 视图消解转换后的查询语句为: SELECT Sno,Sage FROM Student WHERE Sdept= IS AND Sage20; An Introduction to Database System 查询视图(续) [例10] 查询选修了1号课程的信息系学生 SELECT IS_Student.Sno,Sname FROM IS_Student,SC WHERE IS_Student.Sno =SC.Sno AND SC.Cno= 1; An Introduction to Database System 查询视图(续) 视图消解法的局限 有些情况下,视图消解法不能生成正确查询。 An Introduction to Database System 查询视图(续) [例11]在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩 SELECT * FROM S_G WHERE Gavg=90; S_G视图的子查询定义: CREATE VIEW S_G (Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno; An Introduction to Database System 查询转换 错误: SELECT Sno,AVG(Grade) FROM SC WHERE AVG(Grade)=90 GROUP BY Sno; 正确: SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade)=90; An Introduction to Database System 3.6 视 图 3.6.1 定义视图 3.6.2 查询视图 3.6.3 更新视图 3.6.4 视图的作用 An Introduction to Database System 更新视图(续) [例12] 将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰”。 UPDATE IS_Student SET Sname= 刘辰 WHERE Sno= 200215122 ; 转换后的语句: UPDATE Student SET Sname= 刘辰 WHERE Sno= 200215122 AND Sdept= IS; An Introduction to Database System 更新视图(续) [例13] 向信息系学生视图IS_S中插入一个新的学生记录:200215129,赵新,20岁 INSERT INTO IS_Student VALUES(‘95029’,‘赵新’,20); 转换为对基本表的更新: INSERT INTO Student(Sno,Sname,Sage,Sdept) VALUES(‘200215129 ,赵新,20,IS ); An Introduction to Database System 更新视图(续) [例14]删除信息系学生视图IS_Student中学号为200215129的记录 DELETE FROM IS_Student WHERE Sno= 200215129 ; 转换为对基本表的更新: DELETE FROM Student WHERE Sno= 200215129 AND Sdept= IS; An Introduction to Database System 更新视图(续) 更新视图的限制:一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本表的更新 例:视图S_G为不可更新视图。 UPDATE S_G SET Gavg=90 WHERE Sno= ‘200215121’; 这个对视图的更新无法转换成对基本表SC的更新 An Introduction to Database System 更新视图(续) 允许对行列子集视图进行更新 对其他类型视图的更新不同系统有不同限制 An Introduction to Database System 3.6 视 图 3.6.1 定义视图 3.6.2 查询视图 3.6.3 更新视图 3.6.4 视图的作用 An Introduction to Database System 3.6.4 视图的作用 1. 视图能够简化用户的操作 2. 视图使用户能以多种角度看待同一数据 3. 视图对
显示全部
相似文档