对象、事务和数据控制.ppt
《对象、事务和数据控制.ppt》由会员分享,可在线阅读,更多相关《对象、事务和数据控制.ppt(72页珍藏版)》请在三一办公上搜索。
1、,福建工程学院,第9章 高级特性:对象、事务和数据控制,本章要点,学习某些Oracle对象以及它们的使用;使用语法来创建、使用、修改和删除视图、序列、同义词和索引;讨论事务控制的优点;介绍事务控制中所使用的用户、角色和权限;,数据库对象,描述数据存储的基本单元,由行和列组成逻辑上来自一个或多个表的数据的集合,是一虚表产生主关键字值用于提高某些查询的性能为简化和便于记忆,给对象起的别名或替代名称,对象表视图序列索引同义词,什么是视图?,EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO-7839 KING PRESIDENT 17-NOV-81 5000 1
2、0 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7900 JAMES CLERK 7698 03-DEC-8
3、1 950 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 7788 SCOTT ANALYST 7566 09-DEC-82 3000 20 7876 ADAMS CLERK 7788 12-JAN-83 1100 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10,EMP 表,通过创建视图您可以提取出数据的逻辑上的集合或组合。视图是基于一个或多个表
4、或视图的逻辑表视图本身并不包含数据但是却像一个窗口通过它可以查询或修改表中的数据视图所基于的表我们把它称为基表视图是存储在数据字典中的一条SELECT语句。,为什么使用视图,限制对数据库的访问容易实现复杂的查询维护数据的独立性(隔离基表结构的改变)对于相同的数据可以产生不同的视图,简单视图和复杂视图,特征简单视图复杂视图基表数量一个一个或多个包含分组函数没有可能有包含分组的数据没有可能有通过视图实现DML操作可以不一定,创建视图,在CREATE VIEW语句中嵌入一子查询OR REPLACE如果所创建的视图已经存在,Oracle会自动重建该试图FORCE不管基表是否存在,Oracle都会创建该
5、视图NOFORCE只有基表都存在,Oracle才会创建该视图view视图的名称alias为视图所产生的列定义别名,别名的数量必须和视图所产生列的数量相等subquery一条完整的SELECT语句,在该语句中同样可以定义别名,可以使用order by 子名WITH CHECK OPTION所插入或修改的数据行必须满足视图所定义的约束constraintCHECK OPTION中的约束名WITH READ ONLY确保在该视图上不能进行任何DML操作,CREATE OR REPLACE FORCE|NOFORCE VIEW view(alias,alias.)AS subqueryWITH CHE
6、CK OPTION CONSTRAINT constraintnameWITH READ ONLY,创建视图,创建视图 EMPVU10,该视图仅包含10部门雇员的细节信息。,用SQL*Plus DESCRIBE显示视图的结构。,SQL DESCRIBE empvu10,SQL CREATE VIEW empvu10 2 AS SELECTempno,ename,job 3 FROMemp 4 WHEREdeptno=10;View created.,创建视图指导,定义视图的查询可以采用复杂的SELECT语法,可包含连接、分组、子查询。定义视图的查询中可以使用ORDER BY子句(低版本不行)。
7、如果您没有为视图中使用CHECK OPTION创建的约束命名,系统会自动为约束命名,形式为SYS_Cn。使用OR REPLACE选项可以不用删除已经存在的视图便可更改试图的定义并重建它,或者重新授予对象权利。,创建只读视图,创建emp表的经理视图。,执行结果:ERROR 位于第 1 行:ORA-01752:不能从没有一个键值保存表的视图中删除,SQL DELETE FROM managers;,SQL CREATE OR REPLACE VIEW managers 2 AS SELECT*3 FROM emp WHERE job=MANAGER 4 WITH READ ONLY;视图已建立。,
8、SQL INSERT INTO managers values(8181,Jinko,CLERK,null,null,1800,null,20);,创建使用WITH CHECK OPTION选项的视图,创建emp表的经理视图。,执行结果:ERROR 位于第 1 行:ORA-01402:视图 WITH CHECK OPTIDN 违反 where 子句,SQL CREATE OR REPLACE VIEW managers 2 AS SELECT*3 FROM emp WHERE job=MANAGER 4 WITH CHECK OPTION;视图已建立。,创建视图,创建视图时在内部查询中使用列的
9、别名要从视图中选择列时必须使用内部查询中所使用的列的别名,SQL CREATE VIEW salvu30 2 AS SELECTempno EMPLOYEE_NUMBER,ename NAME,3sal SALARY 4 FROMemp 5 WHEREdeptno=30;视图已建立。,创建复杂视图,创建一个基于两个表并且含有组函数的复杂视图。,SQL CREATE VIEWdept_sum_vu 2(name,minsal,maxsal,avgsal)3 AS SELECTd.dname,MIN(e.sal),MAX(e.sal),4AVG(e.sal)5 FROMemp e,dept d 6
10、 WHEREe.deptno=d.deptno 7 GROUP BY d.dname;视图已建立。,从视图检索数据,EMPLOYEE_NUMBER NAME SALARY-7698 BLAKE 2850 7654 MARTIN 1250 7499 ALLEN 1600 7844 TURNER 1500 7900 JAMES 950 7521 WARD 1250已选择6行。,SQL SELECT*2 FROMsalvu30;,可以向从表中检索数据一样从视图检索数据,同样可以查询视图的全部信息也可以查询视图指定的数据行和列。,查询视图,SQL*PlusSELECT*FROM empvu10;,SQ
11、L SELECT view_name,text 2 FROM user_views;,查询视图的名称和定义,可以通过数据字典USER_VIEWS查询视图名称和视图定义,视图定义的SELECT语句保存在LONG型的TEXT字段中。举例:,修改视图,用 CREATE OR REPLACE VIEW子句修改视图empvu10,为每个列添加别名。CREATE VIEW子句中别名的顺序必须和内部查询中的列的顺序一一对应,SQL CREATE OR REPLACE VIEW empvu10 2(employee_number,employee_name,job_title)3 AS SELECT empn
12、o,ename,job 4 FROMemp 5 WHEREdeptno=10;View created.,视图上执行DML操作的规则,在简单视图上可以执行 DML 操作如果视图中包含以下内容则不能删除数据行:组函数GROUP BY 子句DISTINCT 关键字,视图上执行DML操作的规则,如果视图包含以下内容,则不能实现对数据的修改:组函数、GROUP BY子句,DISTINCT关键字。使用表达式定义的列(或称导出列)ROWNUM 伪列如果是以下情况不能插入数据::上面提到的各种情况基表中未在视图中选择的其它列定义为非空并且没有默认值。,SQL CREATE OR REPLACE VIEW e
13、mpvu20 2 AS SELECT*3 FROM emp 4 WHERE deptno=20 5 WITH CHECK OPTION CONSTRAINT empvu20_ck;View created.,WITH CHECK OPTION 子句,如果要确保在视图上执行的DML操作仅限于一定的范围,便可使用WITH CHECK OPTION子句。,在视图中任何修改部门编号的操作都会失败因为这违反了 WITH CHECK OPTION约束,UPDATE empvu20 SET deptno=10 WHERE empno=7902;,ERROR 位于第 1 行:ORA-01402:视图 WITH
14、 CHECK OPTIDN 违反 where 子句,拒绝 DML 操作,在视图定义时使用WITH READ ONLY选项可以确保不能对视图执行DML操作。,SQL CREATE OR REPLACE VIEW empvu10 2(employee_number,employee_name,job_title)3 AS SELECTempno,ename,job 4 FROMemp 5 WHEREdeptno=10 6 WITH READ ONLY;View created.,任何试图执行DML的操作都会导致一个错误ORA-01752。,删除视图,删除视图并不会删除数据因为视图是基于数据库中的基
15、表。,SQL DROP VIEW empvu10;View dropped.,DROP VIEW view;,视图重新编译,当基表改变后,视图会失效ORACLE会在这些视图被访问时自动重新编译可使用ALTER VIEW对视图重新编译ALTER VIEW可以在运行视图前发现重新编译的错误ALTER VIEW 仅能明确地重新编译视图,要改变视图的定义,要使用CREATE OR REPLACE,视图小结,视图是基于一个或多个表或视图的逻辑表,使用视图具有以下优点:限制对数据库的访问简化查询维护数据的独立性对相同的数据可以建立不同的视图可以删除视图而不影响数据,什么是序列,序列是ORACLE对象,用来
16、生成一个顺序编号序列是用于生成唯一、连续序号的对象是一个可共享的对象可以是升序的,也可以是降序的典型应用是创建主键值,用于标识记录的唯一性序列是可以节约时间提高效率的对象,因为采用序列便不用编写序列产生代码,有效地减少应用程序的代码量。序列数值的产生及存储与表无关,因此相同的序列可以用于多个表。,CREATE SEQUENCE 语句,定义序列,自动产生等间隔的连续数值,CREATE SEQUENCE sequenceINCREMENT BY nSTART WITH nMAXVALUE n|NOMAXVALUEMINVALUE n|NOMINVALUECYCLE|NOCYCLECACHE n|N
17、OCACHE ORDER|NOORDER;,CREATE SEQUENCE 语句,语法中:sequence序列产生器的名称INCREMENT BY n指定序列值之间的间隔n,如果省略该项间隔为1START WITH n指定起始序列值n,如果该项省略起始值为1MAXVALUE n指定最大序列值NOMAXVALUE指定最大序列值为10的27次方,而降序的最大值为-1,这是一默认选项,CREATE SEQUENCE 语句,MINVALUE n指定最小序列值NOMINVALUE指定升序最小序列值为1,而降序最小序列值为负10的26次方,这是一默认选项CYCLE|NOCYCLE指定序列值在达到最大值或最
18、小值之后继续产生序列值,NOCYLE表示不再产生,NOCYLE是默认选项。CACHE n|NOCACHE指定序列值被Oracle服务器预先分配并存储在内存中,NOCACHE表示不预先分配并存储,NOCACHE是默认选项ORDER|NOORDER 指定按(或不按)时间先后顺序产生编号,这一点对于使用序列产生主键值非常重要,这个选项是唯一关系到并行服务程序的选项。,创建序列,创建名称为DEPT_DEPTNO的序列,将其作为DEPT表的主键没有使用CYCLE选项,SQL CREATE SEQUENCE dept_deptno 2INCREMENT BY 1 3START WITH 91 4MAXVA
19、LUE 100 5 NOCACHE 6 NOCYCLE;序列已创建。,上面的例子创建名称为DEPT_DEPTNO的序列,将其作为DEPT表的主键。序列起始值为91,没有使用高速缓存技术,并且不允许序列循环。如果序列用于产生主键值不能使用CYCLE选项,除非您采用了比序列循环更快的可靠机制清除老记录。,创建序列,创建名称为emp_empno的序列,将其作为EMP表的主键使用ORDER选项,SQL CREATE SEQUENCE emp_empno 2INCREMENT BY 1 3START WITH 7961 4MAXVALUE 9999 5NOCYCLE 6ORDER;序列已创建。,如果IN
20、CREMENT BY指定的数值为负数,那么序列值将递减产生。同样ORDER|NOORDER选项也是可用的,ORDER选项表示序列值有序产生,这一点对于使用序列产生主键值非常重要,这个选项是唯一关系到并行服务程序的选项。如果序列采用了将序列值预先分配并存储在内存中,一旦出现系统故障这些预先产生的序列值将丢失,确认序列,在字典表USER_SEQUENCES中可以验证序列值LAST_NUMBER列显示了下一个有效的序列值,SQL SELECTsequence_name,min_value,max_value,2 increment_by,last_number 3 FROMuser_sequence
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 事务 数据 控制

链接地址:https://www.31ppt.com/p-6274292.html