第8章 视图、同义词、序列课件

上传人:我*** 文档编号:138887056 上传时间:2020-07-18 格式:PPT 页数:27 大小:634KB
返回 下载 相关 举报
第8章 视图、同义词、序列课件_第1页
第1页 / 共27页
第8章 视图、同义词、序列课件_第2页
第2页 / 共27页
第8章 视图、同义词、序列课件_第3页
第3页 / 共27页
第8章 视图、同义词、序列课件_第4页
第4页 / 共27页
第8章 视图、同义词、序列课件_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《第8章 视图、同义词、序列课件》由会员分享,可在线阅读,更多相关《第8章 视图、同义词、序列课件(27页珍藏版)》请在金锄头文库上搜索。

1、2020/7/18,1,第8章 视图、同义词、序列,2020/7/18,2,上节回顾,Oracle10g数据类型 表操作:创建、修改和删除 完整性约束实现,2020/7/18,3,本讲目标,了解视图的概念和作用 掌握视图的创建、修改和删除 掌握同义词的概念及使用 掌握序列的创建与使用,2020/7/18,4,本章内容,本章内容: (1)视图 (2)同义词 (3)序列 本章重点: (1)视图、同义词和序列的操作 本章难点:(1)同义词概念,2020/7/18,5,8.1、数据库的视图概念,视图是从一个或多个表(或视图)导出的表。 视图与表(有时为与视图区别,也称表为基表Base Table)不

2、同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据 库中只存储视图的定义,对视图的数据进行操作时,系统根据视图 的定义去操作与视图相关联的基表。 视图可以由以下任意一项组成: (1)一个基表的任意子集 (2)两个或者两个以上基表的合集 (3)两个或者两个以上基表的交集 (4)对一个或者多个基表运算的结果集合,视图一经定义以后,就可以象表一样被查询、修改、删除和更新。使用视图有下列优点: (1)为用户集中数据,简化用户的数据查询和处理。 (2)屏蔽数据库的复杂性。 (3)简化用户权限的管理。 (4)便于数据共享。 (5) 可以重新组织数据以便输出到其它应用程序中。,2020/7/18,6

3、,8.2、创建视图,1. 用OEM创建视图,2.使用create view语句创建视图 语法格式: create or replace view 视图名 视图列名 as select 语句 with check option with read only,【例1】创建v1视图,包括”SALES”部门各员工的部门名称、员工编号、员工姓名、员工工资。 create view v1(部门,编号,姓名,工资) as select dname,empno,ename,sal+nvl(comm,0) from emp,dept where emp.deptno=dept.deptno and dname=

4、SALES;,【例2】创建各部门员工的平均工资视图v2,包括部门编号和平均工资。 create view v2(部门编号,平均工资) as select deptno,avg(sal+nvl(comm,0) from emp group by deptno,2020/7/18,7,8.3.1、查询视图,1.select语句查询视图 【例】查找“SALES”部门的员工编号、员工姓名和员工工资。,【例】查找平均工资在2000以上的部门编号和平均工资。 select * from v2 where 平均工资2000;,2020/7/18,8,8.3.2、 更新视图,1.可更新视图 要通过视图更新基表

5、数据,必须保证视图是可更新视图。一个可更新视 图满足以下条件: (1)没有使用连接函数、集合运算函数和组函数; (2)创建视图的SELECT语句中没有聚合函数且没有GROUP BY等关键字; (3)创建视图的SELECT语句中不包含从基表列通过计算所得的列; (4)创建视图没有包含只读属性。,通过更新视图(包括插入、修改和删除)数据可以修改基表数据。但并不是所有的视图都可以更新,只有对满足可更新条件的视图,才能进行更新。,【例】创建视图v3,该视图仅包括部门编号为10 的员工信息。 create view v3 as select * from emp where deptno=10;,2.插

6、入数据:使用insert语句通过视图向基本表插入数据。 【例】向v3视图中插入一条记录: insert into v3 values(8888,CLARK,MANAGER ,7839 , 09-6月 -81 ,2450 ,200, 10); insert into v3 values(9999,AAAA,MANAGER ,7839 , 09-6月 -81 ,9000, 500,20);,3.修改数据:使用updateE语句可以通过视图修改基本表的数据。 【例】将v3视图中所有员工的佣金增加100。 update v3 set comm=nvl(comm,0)+100; update v3 se

7、t comm=666 where empno=8888; update v3 set comm=333 where empno=9999 ; 该语句实际上是将v3视图所依赖的基本表emp中所有部门编号为10的记录的佣金字段值在原来基础上增加100。若一个视图依赖于多个基本表,则一次修改该视图只能变动一个基本表的数据。,4.删除数据:使用delete语句可以通过视图删除基本表的数据。 但要注意,对于依赖于多个基本表的视图,不能使用delete语句。例如,不能通过对v3视图执行delete语句而删除与之相关的基本表emp及v3视图的数据。 【例】删除v3中编号为888的员工记录。 delete f

8、rom v3 where empno=8888; delete from v3 where empno=9999;,2020/7/18,9,8.3.2、修改视图的定义,1.通过OEM修改视图,2.使用SQL命令修改视图 Oracle提供了alter view语句,但它不是用于修改视图定义,只是用于重新 编译或验证现有视图。 【例】修改视图v3的定义,包括员工编号、员工姓名、部门编号、薪金。 create or replace force view v3 as select empno,ename,deptno,sal from emp ;,2020/7/18,10,8.3.3、删除视图,如果不

9、再需要视图了,可以通过OEM和SQL语句两种方式,把视图的定义从数据库中删除。删除一个视图,就是删除其定义和赋予的全部权限。,删除视图的SQL语句是drop view,格式为: drop view schema.view_name 其中schema是所要删除视图的用户方案;view_name是视图名。 例如:drop view v3;将删除视图v3。,2020/7/18,11,8.4、同义词,1、创建同义词2、使用同义词3、删除同义词,2020/7/18,12,8.4.1创建、使用同义词,1. 利用OEM创建同义词,2. 利用CREATE SYNONYM命令创建同义词 语法格式: CREATE

10、 PUBLIC SYNONYM schema.synonym_name FOR schema.object,2020/7/18,13,8.4.2查看、删除同义词,1. 利用OEM删除同义词 2. 利用DROP SYNONYM命令删除同义词 语法格式: DROP PUBLIC SYNONYM schema.synonym_name 说明: PUBLIC表明删除一个公用同义词。Schema指定将要删除的同义词的用户方案。synonym_name为将要删除的同义词名称。,查看同义词的名称 select * from user_synonyms;,2020/7/18,14,8.5、序列,序列(SEQU

11、ENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。,2020/7/18,15,8.5.1、创建序列,利用SQL命令创建序列语法格式为: create sequence schema. sequence_name increment by integer start with integer maxvalue integer | nomaxvalue minvalue integer | nominvalue cycle | nocycle cache i

12、nteger | nocache order | noorder,INCREMENT BY 用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表序列的值是按照此步长递减的。 START WITH 定义序列的初始值(即产生的第一个值),默认为1。 MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。 MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26

13、次方;对于递增序列,最小值是1。 CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误 CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。 order保证序列产生的顺序和请求的顺序是一致的,在并行模式下如果A、B同时对序列请求那么先产生的序列号必然返回给先请求的用户。例如当前序列号为10,A先请求B后请求那

14、么11一定返回给A,12给B,在noorder的情况下,有可能11给B,10给A,cache跳号 建立序列时cache选项可以把N个序列存在cache中,然后用户到cache取序列,当oracle不正常关闭时,cache中的内容就会丢失,而再重新生成序列等待用户来取,这样就可能丢失一部分序列,出现跳号. Rollback缺口 在执行语名时提取出了序列,当执行rollback语名取消事务操作时,被提取了来的序列就丢了,所以有rollback缺口,2020/7/18,16,8.5.2、序列的属性,序列有两个属性 1.nextval属性 该属性返回序列生成的下一个值. 2.currval属性 该属性

15、返回序列的当前值. 注意:在第一次使用时必须首先使用序列的nextval属性,然后才能正确访问currval.,2020/7/18,17,8.5.3、使用序列,create sequence sq increment by 2 start with 1 maxvalue 100 minvalue 1 cycle cache 20;,create table tm (id number(4), name char(8); create table tn (id number(4), name char(8);,insert into tm values(sq.nextval,aa); inser

16、t into tn values(sq.nextval,aa); insert into tm values(sq.nextval,aa); insert into tn values(sq.nextval,aa); insert into tn values(sq.nextval,aa); insert into tm values(sq.nextval,aa); insert into tm values(sq.nextval,aa); insert into tn values(sq.nextval,aa); insert into tn values(sq.nextval,aa);,select * from tm; select * from tn;,select * from user_sequences;-用户序列select sq.currval from dual;-当前值select sq.Nextval from dual;-下个值,2020/7/18,18,8.5.4、修改序列,利用SQL命令修改序列

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号