- 1、本文档共80页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系统概论_03c关系数据库标准语言SQL之数据更新与视图
更新视图(续) [例1] 将信息系学生视图IS_Student中学号95002 的学生姓名改为“刘辰”。 UPDATE IS_Student SET Sname= 刘辰 WHERE Sno= 95002; 转换后的语句: UPDATE Student SET Sname= 刘辰 WHERE Sno= 95002 AND Sdept= IS; 更新视图(续) [例2] 向信息系学生视图IS_S中插入一个新的学生记录:95029,赵新,20岁 INSERT INTO IS_Student VALUES(‘95029’,‘赵新’,20); 转换为对基本表的更新: INSERT INTO Student(Sno,Sname,Sage,Sdept) VALUES(95029,赵新,20,IS ); 更新视图(续) [例3] 删除视图CS_S中学号为95029的记录 DELETE FROM IS_Student WHERE Sno= 95029; 转换为对基本表的更新: DELETE FROM Student WHERE Sno= 95029 AND Sdept= IS; 更新视图的限制 一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本表的更新(对两类方法均如此) 例:视图S_G为不可更新视图。 CREATE VIEW S_G (Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno; 更新视图(续) 对于如下更新语句: UPDATE S_G SET Gavg=90 WHERE Sno= 95001; 无论实体化法还是消解法都无法将其转换成对 基本表SC的更新 视图的可更新性 理论上可更新 理论上不可更新 允许更新 不允许更新 不允许更新 实际系统对视图更新的限制 允许对行列子集视图进行更新 对其他类型视图的更新不同系统有不同限制 DB2对视图更新的限制: (1) 若视图是由两个以上基本表导出的,则此视图不允许更新。 (2) 若视图的字段来自字段表达式或常数,则不允许对此视图执行INSERT和UPDATE操作,但允许执行DELETE操作。 更新视图(续) (3) 若视图的字段来自集函数,则此视图不允许更新。 (4) 若视图定义中含有GROUP BY子句,则此视图不允许更新。 (5) 若视图定义中含有DISTINCT短语,则此视图不允许更新。 (6) 若视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的基本表,则此视图不允许更新。 (7) 一个不允许更新的视图上定义的视图也不允许更新 更新视图(续) 例:视图GOOD_SC(修课成绩在平均成绩之上的元组) CREATE VIEW GOOD_SC AS SELECT Sno,Cno,Grade FROM SC WHERE Grade (SELECT AVG(Grade) FROM SC); 3.5 视 图 3.5.1 定义视图 3.5.2 查询视图 3.5.3 更新视图 3.5.4 视图的作用 1. 视图能够简化用户的操作 当视图中数据不是直接来自基本表时,定 义视图能够简化用户的操作 基于多张表连接形成的视图 基于复杂嵌套查询的视图 含导出属性的视图 2. 视图使用户能以多种角度看待同一数据 视图机制能使不同用户以不同方式看待同一数据,适应数据库共享的需要 3.视图对重构数据库提供了一定程度的逻辑独立性 例:数据库逻辑结构发生改变 学生关系Student(Sno,Sname,Ssex,Sage,Sdept) “垂直”地分成两个基本表: SX(Sno,Sname,Sage) SY(Sno,Ssex,Sdept) 3.视图对重构数据库提供了一定程度的逻辑独立性 通过建立一个视图Student: CREATE VIEW Student(Sno,Sname,Ssex,Sage,Sdept) AS SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept FROM SX,SY WHERE SX.Sno=SY.Sno; 使用户的外模式保持不变,从
您可能关注的文档
- 数据库管理系统MySQL实验3.doc
- 数据库管理系统MySQL实验4.doc
- 数据库系统原理(总复习)-new.ppt
- 数据库系统原理与设计第二版实验教程实验一到实验三.docx
- 数据库系统原理及应用教程1.ppt
- 数据库系统原理实验三数据库完整性.doc
- 数据库系统原理实验五数据库设计.doc
- 数据库系统原理教学3.ppt
- 数据库系统原理第3阶段测试题.doc
- 数据库系统原理试卷-B.doc
- 小学数学课程中的数学启蒙教具设计研究教学研究课题报告.docx
- 英语考试技巧的实战演练教学研究课题报告[001].docx
- 高中语文课程中的写作能力培养策略探究教学研究课题报告.docx
- 高中心理学与青少年心理健康教学研究课题报告[001].docx
- 小学语文课中古代文学对学生文学鉴赏能力的培养研究教学研究课题报告.docx
- 《社保产生和发展》课件.ppt
- 小学物理实验室教学资源配置优化方案探讨教学研究课题报告.docx
- 小学美术绘画技法与创作思路的引导与评价教学研究课题报告.docx
- 高中历史课堂中历史文化传承与创新教学策略的探讨与实践教学研究课题报告.docx
- 小学英语听说能力的培养策略研究教学研究课题报告.docx
文档评论(0)