数据库第12章视图.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文档。上传文档
查看更多
数据库第12章视图

查询视图(续) [例] 查询101学生选修了的课程名、成绩。 SELECT cname,degree FROM VIEW2 WHERE sno=101 经过视图消解,相当于执行以下查询: SELECT cname,degree FROM student,score,course WHERE student.sno=score.sno AND score.cno=course.cno AND student.sno=101 12.3 更新视图 由于视图是一张虚表,所以对视图的更新,最终实际上是转换成对基本表的更新。 其更新操作包括插入、修改和删除数据。 其语法格式如同对基本表的更新操作一样。 在关系数据库中,并不是所有的视图都是可更新的,一般仅行列子集视图和分区视图是可更新的,以下仅考虑可以更新的视图。 从单个基本表导出的,并且只是去掉了基本表的某些行和某些列。 使用UNION ALL把一组成员表中的分区数据水平连接形成的视图 更新视图(续) [例1] 向95031班学生视图VIEW3中插入一个新的学生记录: (111, 王强,男,1976-9-4,95031 ) INSERT INTO VIEW3 VALUES(111, 王强,男,1976-9-4,95031 ) 系统在执行此语句时,首先从数据库中找到VIEW3的定义,然后把此定义和插入操作结合起来,转换成等价的对基本表student的插入。相当于执行以下操作: INSERT INTO student(sno,sname,ssex,sbirthday,class) VALUES(111, 王强,男,1976-9-4,95031) 更新视图(续) [例2] 将95031班学生视图VIEW3中学号‘103’的学生姓名改为“刘辰”。 UPDATE VIEW3 SET sname= 刘辰 WHERE sno= 103 转换后的语句: UPDATE student SET sname= 刘辰 WHERE sno= 103 AND class= 95031 更新视图(续) [例] 删除视图VIEW3中学号为103的记录 DELETE FROM VIEW3 WHERE sno= 103 转换为对基本表的更新: DELETE FROM Student WHERE sno= 103 AND class= 95031 分区视图举例: 例:在school数据库中把student表水平拆分为两个表student1和student2,它们在分区列(主键)上的CHECK约束分别为BETWEEN ‘101’ AND ‘105’和BETWEEN ‘106’ AND ‘110’。 CREATE TABLE student1 (sno char(5) PRIMARY KEY CHECK (sno BETWEEN 101 AND 105), sname char(8), ssex char(2), sbirthday datetime, class char(5) ) CREATE TABLE student2 (sno char(5) PRIMARY KEY CHECK (sno BETWEEN 106 AND 110), sname char(8), ssex char(2), sbirthday datetime, class char(5) ) 使用UNION ALL 创建分区视图: CREATE VIEW VIEW4 AS SELECT * FROM student1 UNION ALL SELECT * FROM student2 !!此外ALL不可省略。 INSERT INTO VIEW4 VALUES(106, 王强, 男, 1976-9-4, 95031) /*利用分区视图插入一行数据*/ UPDATE VIEW4 SET class=95033 WHERE sno=106 /*利用分区视图修改数据*/ DELETE VIEW4 WHERE sno=106 /*利用分区视图删除数据*/ 12.4 修改视图的定义 1. 通过企业管理器修改视图 12.4 修改视图的定义 2. 使用ALTER VIEW语句修改视图 ALTER VIEW 视图名 [(视图属性列表)] [WITH ENCRYPTION|SCHEMABINDING] AS 子查询 [WITH CHECK OPTION] 12.4 修改视图的定义 例如:把VIEW3加密. CREATE VIEW VIEW3 WITH

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档