




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关系数据库操作基础,4.5 视图,本人所售课程学生名单,本学期为自己的课程安排,教师开课的情况,教室使用的情况,学生的平均成绩,最高成绩,最低成绩等,理解视图,视图的特点 虚拟表,是从一个或几个基本表(或视图)导出的表 只存放视图的定义,不会出现数据冗余 基表中的数据发生变化,从视图中查询出的数据也随之改变,基于视图的操作,基于视图的操作 查询 删除 受限更新 定义基于该视图的新视图,创建视图,DBMS执行CREATE VIEW语句时只是把视图的定义存入数据字典,并不执行其中的SELECT语句。 在对视图查询时,按视图的定义从基本表中将数据查出。,Create view AS ,创建视图举例,CREATE VIEW HBstudent AS SELECT sno , sname , sex , age FROM student WHERE place LIKE 湖北,例1建立一个湖北考籍的学生信息视图,创建视图举例,CREATE VIEW C_stud_info(sno , sname , sex , place) AS SELECT sno , sname , sex , place FROM student WHERE sno IN ( SELECT sno FROM study WHERE cno IN ( SELECT cno FROM course WHERE cname LIKE C语言 ) ),例2建立一个学习了C语言的所有学生信息的视图,创建视图(续),WITH CHECK OPTION 强制视图上执行的所有数据修改语句都必须符合由 设置的准则。通过视图修改行时,WITH CHECK OPTION 可确保提交修改后,仍可通过视图看到修改的数据。,创建视图举例,CREATE VIEW HBstudent_1 AS SELECT sno , sname , sex , age,place FROM student WHERE place LIKE 湖北 WITH CHECK OPTION;,例1建立一个湖北考籍的学生信息视图,更新 WITH CHECK OPTION的视图举例,update HBstudent_1 set place=河北 where sno=1,基于多个基表的视图,CREATE VIEW Student_Study AS SELECT student.sno, cno, grade FROM student, study WHERE student.sno = study.sno AND place LIKE %湖北%,基于视图的视图,例4 CREATE VIEW HBstudent_2 AS SELECT sno,sname,age FROM HBstudent WHERE sex=女,带表达式的视图,例5 CREATE VIEW HBstudent_3 AS SELECT sno , sname , sex , year(getdate()-year, place FROM student WHERE place LIKE 湖北,设置一些派生属性列, 也称为虚拟列距今年份 带表达式的视图必须明确定义组成视图的各个属性列名,删除视图,DROP VIEW ; 该语句从数据字典中删除指定的视图定义 由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除 删除基表时,由该基表导出的所有视图定义都必须显式删除,删除视图(续),例7 删除视图HBstudent_3 DROP VIEW HBstudent_3,视图的查询,SELECT FROM 视图或者表 WHERE ,查询视图的工作原理,从用户角度:查询视图与查询基本表相同 DBMS实现视图查询的方法 实体化视图(View Materialization) 有效性检查:检查所查询的视图是否存在 执行视图定义,将视图临时实体化,生成临时表 查询视图转换为查询临时表 查询完毕删除被实体化的视图(临时表),查询视图的工作原理(续),视图消解法(View Resolution) 进行有效性检查,检查查询的表、视图等是否存在。如果存在,则从数据字典中取出视图的定义 把视图定义中的子查询与用户的查询结合起来,转换成等价的对基本表的查询 执行修正后的查询,视图HBstudent中查找年龄大于20岁的学生基本信息 SELECT sno , sname , sex , age FROM HBstudent WHERE age 20,查询视图(续),用视图消解法解释查询的执行过程 转换后的查询语句为: SELECT sno , sname , sex , age FROM HBstudent WHERE age 20,查询视图(续),视图消解法的局限 有些情况下,视图消解法不能生成正确查询。采用视图消解法的DBMS会限制这类查询。,查询视图(续),已知视图: CREATE VIEW avg_score(课程号,平均分) AS SELECT CourseNo,AVG(grade) FROM study GROUP BY CNo,预对视图进行如下查询: select * from avg_score where平均分=90 如果采用视图消减法,则极有可能转化为下面的语句: SELECT CourseNo,AVG(grade) FROM study WHERE AVG(grade)=90 GROUP BY CNo,而实际上,这是一条错误的转换。正确的转换应该是: SELECT CourseNo,AVG(grade) FROM study GROUP BY CNo HAVING AVG(grade)=90,更新视图,用户角度:更新视图与更新基本表相同 DBMS实现视图更新的方法 视图实体化法(View Materialization) 视图消解法(View Resolution) 指定WITH CHECK OPTION子句后,DBMS在更新视图时会进行检查,防止用户通过视图对不属于视图范围内的基本表数据进行更新,更新视图通过视图添加数据,insert into part_movie (title,year,length,incolor) values(M9,2005,102,1),在湖北考籍的学生视图HBstudent中插入一湖北考生信息,该学生信息为: (04031,戴敏,女,21) INSERT INTO HBstudent VALUES(04031,戴敏,女,21) 该语句执行时将转换成对student表的插入: INSERT INTO student VALUES(04031,戴敏,女,21,湖北),更新视图修改数据,将视图HBstudent中学号为03061的同学年龄改为20岁。 UPDATE HBstudent SET age=20 WHERE sno LIKE 03061 该语句执行时将转换成对student表的修改: UPDATE student SET age=20 WHERE sno LIKE 03061 AND place LIKE 湖北,更新视图的限制,一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本表的更新(对两类方法均如此) 例:CREATE VIEW avg_score(课程号,平均分) AS SELECT CNo,AVG(grade) FROM study GROUP BY CNo,视图的可更新性,SQL-Server规定可以按下列方式通过视图修改数据: 视图在视图定义的 FROM 子句中包含至少一个表;视图不能只基于一个表达式。 在选择列表中没有使用聚合函数(AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR、VARP)或 GROUP BY、UNION、DISTINCT 或 TOP 子句。但是,可以在 FROM 子句定义的子查询范围内使用聚合函数,前提条件是聚合函数生成的派生值没有修改过。 在选择列表中不使用派生列。派生列是由除简单列引用以外的一切构成的结果集列。 如果在视图中删除数据,在视图定义的 FROM 子句中只能列出一个表。,1. 视图能够简化用户的操作,当视图中数据不是直接来自基本表时,定义视图能够简化用户的操作 基于多张表连接形成的视图 基于复杂嵌套查询的视图 含导出属性的视图,2. 视图使用户能以多种角度看待同一数据,视图机制能使不同用户以不同方式看待同一数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 后勤主任培训内容
- 膀胱脱垂日常护理
- 争做健康阳光新时代好少年
- CRRT应用和护理要点
- 矿山资源开采权转让与经营合作合同
- 外企叉车安全培训
- 餐饮场地临时使用及环保责任承诺书
- 商业地产开发场地调研与风险评估合同协议
- 医疗服务市场调研合作合同
- 税务筹划与税务审计常年服务协议
- 2025年安徽省中考数学试卷真题(含标准答案)
- 2025至2030年中国高纯氧化镁行业市场运行格局及前景战略分析报告
- 妇女保健服务技术规范与诊疗常规
- 高级记者考试试题及答案
- 2025国家开放大学《高级财务会计》期末机考题库
- R1快开门式压力容器操作上岗证考试题及答案
- 贵州毕节中考试题及答案
- 道路人行天桥加装电梯导则(试行)
- 中国废旧轮胎橡胶粉项目投资计划书
- 2025年河北省专技人员公需课《人工智能时代的机遇与挑战-预训练大模型与生成式AI》答案
- 2025-2030母婴用品产业市场现状供需分析及重点企业投资评估规划分析研究报告
评论
0/150
提交评论