- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
创建具有READ ONLY约束的视图 创建视图时为了避免用户修改数据,可以把视图设成为只读属性。 重新创建视图view1,使其带有只读属性。 CREATE VIEW view3 AS SELECT empno, ename,job ,deptno, sal FROM emp WHERE job=‘CLERK’ WITH READ ONLY; 说明:OR REPLACE子句表示如果已存在同名视图,则进行覆盖。若删除该视图中的一条数据,注意此时数据库会返回错误,因为这个视图是只读的,不允许执行DML操作, 创建复杂视图 复杂视图包含的子查询具有以下特点: ● 从多个基表中检索数据。 ● 使用GROUP BY或DISTINCT子句对记录分组。 ● 包含函数调用。 例:创建视图view4,显示每个部门员工的人数和平均薪水. CREATE VIEW view4(部门号,部门名称,员工人数,平均薪水) AS SELECT E.deptno, D.dname,count(E.empno),AVG(E.sal) FROM emp E, dept D WHERE E.deptno=D.deptno GROUP BY E.deptno 需要注意: 在SELECT子句中使用了表达式或函数,这样的运算式不能作为视图中的列名,所以在创建复杂视图时,必须为每个列指定列名。对于复杂视图,一般不允许DML操作。 6.2.2使用视图 使用DESC命令可以获取有关视图定义的信息。 对视图的更新其实就是对源表数据的更新(插入、更新和删除),源表最好是单表,否则限制比较多。 下面的情况一旦出现在视图中,视图就不允许更新。 使用DISTINCT关键字 集合运算或分组函数,如使用INTERSECT、SUM、MAX、COUNT等函数。 使用GROUP BY、ORDER BY等子句对记录分组。 说明: 除了以上情况外,还需要考虑基表的一些约束,这些约束对视图数据的更新都有一定的影响。如果需要重建可以更新的视图,可以使用Oracle提供的替代触发器。 6.2.3 修改视图 CREATE OR REPLACE可以彻底替换一个视图。 修改视图(为视图添加新列) CREATE OR REPLACE VIEW view1 AS SELECT empno, ename, hiredate, deptno, sal FROM emp WHERE job=‘CLERK’; 编译视图 视图依赖于基础表的存在而存在,当基础表进行了结构上的调整,有可能会对视图产生影响。如欲再次使用该视图,必须对视图进行重新编译。 ALTER VIEW view1 COMPILE 6.2.4 删除视图 对于不再需要的视图,可以通过DROP VIEW语句把视图的定义从数据库中删除。删除视图,就是删除其定义和赋予它的全部权限。 删除视图的语法结构如下: DROP VIEW [schema..]view [CASCADE CONSTRAINTS] 其中,CASCADE CONSTRAINTS删除视图时删除约束。 查看用户创建的视图 可以利用SELECT语句查看当前用户下的所有视图: SELECT VIEW_NAME FROM USER_VIEWS; 6.3 索引概述 索引(Index):是关系型数据库的一个基本概念。在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快,作用类似于一本书的目录。 索引提供了数据库中编排表中数据的内部方法。索引是以表的列为基础的数据库对象,它保存着表中排序的索引项,并且记录索引列在数据表中的物理存储位置,实现表中数据的逻辑排序。 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。 索引依赖于数据库的表,作为表的一个组成部分,一旦创建后,由数据库系统自身进行维护。一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部用来分存放索引页面,索引就存放在索引页面上。 6.3 索引概述 例如:如果想根据用户名来查找特定的用户,则可按UserName建立索引将大大缩短查询的时间。演示了索引的存储和工作情况,每个UserName值按顺序存储,并指向表中包含各个值的数据行。 使用索引的意义 索引具有两个功能: 一是为了实施主键和唯一性约束; 二是为了提高性能。 应用程序的索引策略对于性能至关重要。创建主键时,Oracle会自动创建该列的索引。唯一性约束也需要索引。与主键约束的区别在于,唯一性约束的列可以留空,甚至可以在多行留空。索引对于性能而言至关重要。 使用索引的意义 在执行包含WHERE子句的任何SQL语句时,
您可能关注的文档
最近下载
- 输输电线路角钢塔焊接件组装工艺技术规程(作业指导书9).doc VIP
- 文旅公司招聘笔试试题.pdf
- 诺华在中国-诺华中国Novartis.PDF VIP
- 4.《促织》课件(共62张PPT) 高教版(2023)中职语文基础模块上册.pptx VIP
- 威尔克姆V8[中文]说明书.pdf VIP
- 2022届中考真题、模考专项练习-“伏安法测电阻”、“测定小灯的电功率”(附答案).pdf VIP
- 专题1.1 整式的乘除(压轴题专项讲练)(北师大版)(原卷版).pdf VIP
- 2025—2026年印制电路板制造的节能环保趋势.pptx
- 再生润滑油基础油团体标准(TCRRA-0901-2023).pdf VIP
- 美世国际职位评估手册.pdf VIP
文档评论(0)