第三章 SQL-视图部分.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 SQL-视图部分

小结 数据库和表的创建、修改、删除 索引的创建、删除 数据更新语句的使用 查询语句的各种使用 视图的创建、查询、作用 3.5.3 更新视图 对视图的更新,最终要转换为对基本表的更新。 UPDATE Student SET Sname=‘刘辰’ WHERE Sno=‘95002’AND Sdept=‘IS’; 为防止用户通过视图对数据进行增加、删除、修改时,有意无意地对不属于视图范围内的基本表数据进行操作,可以定义视图时加上WITH CHECK OPTION子句。 例1 将信息系学生视图IS_Student中学号为95002的学生姓名改为“刘辰” UPDATE IS_Student SET Sname=‘刘辰’ WHERE Sno=‘95002’; 例2 向信息系学生视图IS_Student中插入一个新的学生记录,学号为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 CS_S WHERE Sno=‘95029’; 转换为对基本表的更新: DELETE FROM Student WHERE Sno=‘95029’ AND Sdept=‘IS’; 并不是所有的视图都是可更新的,因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新。 一般地,行列子集视图是可更新的。除行列子集视图外,还有些视图理论上是可更新的,但它们的确切特征还是尚待研究的课题。还有些视图从理论上是不可更新的。 UPDATE S_G SET Gavg=90 WHERE Sno=‘95001’; 目前各个关系数据库系统一般都只允许对行列子集视图进行更新, 而且各个系统对视图的更新还有更进一步的规定,由于各系统实现 方法上的差异,这些规定也不尽相同。 例如DB2规定: (1)若视图是由两个以上基本表导出的,则此视图不允许更新。 (2)若视图的字段来自字段表达式或常数,则不允许对此视图执 行INSERT和UPDATE操作,但允许执行DELETE操作。 (3)若视图的字段来自集函数,则此视图不允许更新。 (4)若视图定义中含有GROUP BY子句,则此视图不允许更新。 (5)若视图定义中含有DISTINCT短语,则此视图不允许更新。 (6)若视图定义中有嵌套查询,并且内层查询的FROM子句中涉 及的表也是导出该视图的基本表,则此视图不允许更新。 例如将SC中成绩在平均成绩之上的元组定义成一个视图 CREATE VIEW GOOD_SC AS SELECT Sno , Cno , Grade FROM SC WHERE Grade (SELECT AVG(Grade) FROM SC); (7)一个不允许更新的视图上定义的视图也不允许更新。 应该指出的是,不可更新的视图与不允许更新的视图是两个不同的概念。前者指理论上已证明其是不可更新的视图。后者指实际系统中不支持其更新,但它本身有可能是可更新的视图。 用视图插入行 当视图显示的是基表的所有列时,可以利用视图插入数据。 如视图只显示基表的部分列时,用视图插入行时可能会遇到问题。 如视图只显示基表的

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档