unit5:视图、序列、索引、约束

unit5:视图、序列、索引、约束

ID:34726644

大小:76.09 KB

页数:24页

时间:2019-03-10

unit5:视图、序列、索引、约束_第1页
unit5:视图、序列、索引、约束_第2页
unit5:视图、序列、索引、约束_第3页
unit5:视图、序列、索引、约束_第4页
unit5:视图、序列、索引、约束_第5页
资源描述:

《unit5:视图、序列、索引、约束》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1.视图1.1什么是视图视图view也被称为虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应一条select语句,结果集被赋予一个名字,即视图名字。视图本身不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。创建视图语法:create[orreplace]view视图名[(alias[,alias...])]assubquery;说明:语法中的subquery是select查询语句,对应的表被称为基表。根据视图对应的子查询种类分为几种类型:1)select语句是基于单表建立的,且不包含任何函数运

2、算、表达式或分组函数,叫做简单视图,此时视图是基表的子集;2)select语句同样是基于单表,但包含了单行函数、表达式、分组函数或groupby子句,叫做复杂视图;3)select语句是基于多个表的,叫做连接视图。1.2视图的作用1)简化复杂查询;第24页共24页2)视图本质上就是一条select语句,所以当访问视图时,只能访问到所对应的select语句中涉及到的列,对基表中的其他列祈祷安全和保密的作用,可以限制数据访问。1.3视图创建授权grantcreateviewto用户名;1.4创建简单视图CREATEVIEWv_emp_10A

3、SSELECTempno,ename,sal,deptnoFROMempWHEREdeptno=10;查看视图结构:descv_emp_10查询视图:select*fromv_emp_10;selectid,name,salaryfromv_emp_10;1.5对视图进行insert操作当对视图进行DML操作时,实际上是对基表的DML操作。对视图执行DML操作的基本原则:第24页共24页1)简单视图能够执行DML操作,下列情况除外:在基表中定义了非空列,但简单视图对应的select语句并没有包含非空列,导致这个非空列对视图不可见,这时无

4、法对视图执行insert操作;2)如果视图定义中包含了函数、表达式、分组语句,distinct关键字或rownum伪列,不允许执行DML操作;3)DML操作不能违反基表的约束条件。例:insertintov_emp_10values(1234,'doctor',4000,10);1.6创建具有checkoption约束的视图语法:create[orreplace]view视图名[(alias[,alias...])]assubquery[withcheckoption];其中:withcheckoption短语表示,通过视图所做的修改,

5、必须在视图的可见范围内:1)假设insert,新增的记录在视图仍可查看;2)假设update,修改后的结果必须能通过视图查看到;3)假设delete,只能删除现有视图里能查到的记录;创建带有checkoption约束的视图:CREATEORREPLACEVIEWv_emp_10ASSELECTempnoid,enamename,salsalary,deptnoFROMempWHEREdeptno=10第24页共24页WITHCHECKOPTION;下述DML语句操作失败,因为部门20不在视图可见范围内:INSERTINTOv_emp_1

6、0VALUES(1008,'donna',5500,20);UPDATEv_emp_10SETdeptno=20WHEREid=7782;1.7创建具有readonly约束的视图建立只读视图,保证视图对应的基表数据不会被非法修改。语法:create[orreplace]view视图名[(alias[,alias...])]assubquery[withreadonly];创建视图,带有readonly约束:CREATEORREPLACEVIEWv_emp_10ASSELECTempno,ename,sal,deptnoFROMempWH

7、EREdeptno=10WITHREADONLY;此时对只读视图执行DML操作,将会失败:INSERTINTOv_emp_10VALUES(1258,'DONNA',3000,10);得到如下结果:第24页共24页ERROR位于第1行:ORA-01733:此处不允许虚拟列1.8通过查询user_views获取相关信息和视图相关的数据字典有:1)在数据字典user_objects中查询所有视图名称:SELECTobject_nameFROMuser_objectsWHEREobject_type='VIEW';2)在数据字典user_vi

8、ews中查询指定视图:SELECTtextFROMuser_viewsWHEREview_name='V_EMP_10';3)在数据字典user_updatable_columns中查询视图:SELECTc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。