- 1、本文档共202页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * An Introduction to Database System 查询视图(续) 视图消解法的局限 有些情况下,视图消解法不能生成正确查询。 An Introduction to Database System 查询视图(续) [例11]在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩 SELECT * FROM S_G WHERE Gavg=90; S_G视图的子查询定义: 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 更新视图(续) UPDATE IS_Student SET Sname= 刘辰 WHERE Sno= 200215122 ; [例12] 将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰”。 转换后的语句: UPDATE Student SET Sname= 刘辰 WHERE Sno= 200215122 AND Sdept= IS; An Introduction to Database System 更新视图(续) INSERT INTO IS_Student VALUES (‘95029’,‘赵新’,20); [例13] 向信息系学生视图IS_S中插入一个新的学生记录:200215129,赵新,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 更新视图(续) 允许对行列子集视图进行更新 对其他类型视图的更新不同系统有不同限制 因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新。例如DB2规定(在SQL Server中也有类似的规定) : 若视图是由两个以上基本表导出的,则此视图不允许更新。 若视图的字段来自字段表达式或常数,则不允许对此视图执行INSERT和UPDATE操作,但允许执行DELETE操作。 若视图的字段来自集函数,则此视图不允许更新。 若视图定义中含有GROUP BY子句,则此视图不允许更新。 若视图定义中含有DISTINCT短语,则此视图不允许更新。 若视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的基
您可能关注的文档
- 数控机床故障诊断与维修电子教案龚仲华项目4章节幻灯片.ppt
- 数控机床故障诊断与维修电子教案龚仲华项目5章节幻灯片.ppt
- 数据库技术与应用——SQLServer2008教学作者胡国胜第5章节创建与使用数据库课件幻灯片.ppt
- 数控机床故障诊断与维修电子教案龚仲华项目6章节幻灯片.ppt
- 数控机床故障诊断与维修电子教案龚仲华项目7章节幻灯片.ppt
- 数据库技术与应用——SQLServer2008教学作者胡国胜第6章节创建与使用数据表课件幻灯片.ppt
- 数控机床故障诊断与维修电子教案龚仲华项目8章节幻灯片.ppt
- 数控机床故障诊断与维修电子教案龚仲华项目9章节幻灯片.ppt
- 数据库技术与应用——SQLServer2008教学作者胡国胜第10章节存储过程课件幻灯片.ppt
- 数控机床故障诊断与维修教学课件作者龚仲华电子教案项目1课件幻灯片.ppt
文档评论(0)