Oraclei视图序列索引和同义词课件_第1页
Oraclei视图序列索引和同义词课件_第2页
Oraclei视图序列索引和同义词课件_第3页
Oraclei视图序列索引和同义词课件_第4页
Oraclei视图序列索引和同义词课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、建立视图视图的使用与基表类似,要有视图名及相应的列。生成一个视图可使用CREATE VIEW命令。其语法格式如下:CREATE OR REPLACE FORCE VIEW viewname AS WITH READ ONLY|WITH CHECK OPITION第1页,共86页。OR REPLACE:允许新视图替换已存在的一个同名视图。FORCE:即使在基本表不存在或对这些表无访问权限时,也可建立视图。不过,这个视图在表被建立和被授权访问它们之前一直处于无效状态。WITH READ ONLY:只允许查询访问视图。WITH CHECK OPITION:如果关联视图使用此选项建立,将完全不能插入,

2、但能删除和修改。第2页,共86页。CREATE OR REPLACE FORCE VIEW TMP_VIEW AS SELECT a.empno, a.ename, b.dname FROM emp a, DEPT b where a.deptno=b.deptno;第3页,共86页。第4页,共86页。使用视图一旦建立了一个视图,就可以把它当作一个表从中查询数据。CREATE OR REPLACE FORCE VIEW TMP_VIEW AS SELECT a.empno, a.ename, b.dname FROM emp a, DEPT b where a.deptno=b.deptno;

3、select * from tmp_view;第5页,共86页。Oraclec允许对视图执行UPDATE、INSERT和DELETE语句。如果一个视图包括了基本表中的所有列,并仅有一个WHERE子句来限制那些返回的行,那么Oracle将允许更新这个视图。对于没有保存至少一个基本表的主键的那些视图是不能被更新的。另外一些处理汇部数据、基于表达式的列、联合和某种关联的视图也不能被更新。 第6页,共86页。比如:带有INTERSECT、UNION或MINUS等集合操作符的视图带有GROUP BY、CONNECT BY或START WITH子句的视图带有AVG、SUM或MAX等组函数的视图带有DIST

4、INCT的功能的视图;如果不清楚指定的视图是否可以更新,或可以更新哪些列,可以查询USER_UPDATABLE_COLUMNS数据字典视图。 第7页,共86页。例如查询上例中建立的视图TMP_VIEW是否可以更新可以执行如下操作:select column_name, updatable from user_updatable_columns where table_name=TMP_VIEW;第8页,共86页。重新编译视图任何时间改变一个视图的查询所引用的对象时,Oracle将标记该视图无效。再次使用视图前它必须被重新编译。从新编译一个视图语法如下:ALTER VIEW viewname C

5、OMPILE;alter view bookauthor_view compile;alter view bookonweb compile;第9页,共86页。重建视图修改视图所能处理的操作只是重新编辑视图。若想改变视图的定义,必须重建视图。若想修改视图bookonweb的定义为所有上网的且出版日期在1995年1月1日之后的书目信息,需要重建视图bookonweb。create or replace view bookonwebas select * from bookinfowhere status=y and publishtime1-1月-95with read only;第10页,共8

6、6页。删除视图可以使用DROP VIEW命令从数据库中删除视图。其格式为:drop view schema.viewname;drop view bookauthor_view也可以使用OEM通过右击视图从弹出菜单中选择“删除”来删除一个视图。 第11页,共86页。查看视图信息视图创建后,可以通过数据字典中的一些有关视图信息的视图来查看视图。视图名称说明DBA_VIEWS包含了数据库中所有的视图信息ALL_VIEWS包含了当前用户可以访问的所有视图信息USER_VIEWS包含了当前用户所拥有的所有的视图信息DBA_UPDATABLE_COLUMNS包含了数据库中所有的连接多个表的可更新视图有关

7、的表列信息ALL_UPDATABLE_COLUMNS包含了当前用户可以访问的所有的连接多个表的可更新视图的表列信息USER_UPDATABLE_COLUMNS包含了当前用户拥有的所有的连接多个表的可更新视图的表列信息第12页,共86页。查询用户bookcreator所拥有的全部视图的名称、类型select view_namefrom all_viewswhere owner=BOOKCREATOR;第13页,共86页。序列管理Oracle序列是一个连续的数字生成器。比如希望表的主键是一个数字,并且希望每次向表中插入新行时那个数字能自动增加,或正在建立审计跟踪时,需要知道生成这些审计跟踪记录的确

8、切的顺序,而靠一个时间戳通常不足以实现这些功能。序列只存在于数据字典中。序列号可以被设置为上升、下降,可以没有限制或重复使用直到一个限制值。第14页,共86页。创建序列创建序列使用CREATE SEQUENCE语句。其语法格式如下:CREATE SEQUENCE schema.sequencename KEYWORD下面的例子将创建一个序列,初始值是1,并且每次访问自动增加1。SQL CREATE SEQUENCE sqc_plan_key 2 START WITH 1 3 INCREMENT BY 1 4 ORDER 5 NOCYCLE;第15页,共86页。START WITH 1用于指定初

9、始值是1。INCREMENT BY 1用于指定每次访问自动增加1,如果INCREMENT BY后面跟一个负值,则序列将是降序的。ORDER用于保证每个序列的值都将比先前的值大。使用NOCYCLE设置序列值在达到限制值以后不能重复,这是缺省设置。当试图产生MAXVALUE+1的值时,将会产生一个异常。 第16页,共86页。其它关键字还有:MINVALUE:定义序列可以生成的最小值,这是降序序列中的限制值。缺省情况下该值为NOMINVALUE,对于升序为1,对于降序为-10E26。MAXVALUE:序列能生成的最大数字。这是升序序列中的限制值,缺省的MAXVALUE为NOMAXVALUE,对于升序

10、为10E26,对于降序为-1。CYCLE:设置序列值在达到限制值以后可以重复。CACHE:定义序列值占据的内存块的大小,缺省值为20。NOCACHE:在每次序列号产生时强制数据字典更新,保证在序列值之间没有间隔当创建序列时,START WITH值必须等于或大于MINVALUE。第17页,共86页。第18页,共86页。改变序列改变序列的办法也有两种,一种是通过命令行ALTER SEQUENCE命令改变序列的选项。另一种是通过在OEM中右击序列名,从弹出菜单中选择“编辑”来进行改变。对于序列的当前值是无法更改的,如果应用中确有这种要求,那么只能删除此序列后,再使用START WITH子句重建此序列

11、。 第19页,共86页。修改一个序列,使用ALTER SEQUENCE实现。如修改序列stuenno的cache属性为30,且不可循环使用ALTER SEQUENCE stuennonocyclecache 30;第20页,共86页。删除序列使用DROP SEQUENCE命令来删除一个序列。其语法格式为:DROP SEQUENCE sequence_name也可以通过OEM来删除序列。简单地右击想删除的序列,并从弹出的菜单中选择“移去”。当一个序列被删除后,其相关的权限也理所当然的被删除了,但建立在其上的同义词或触发器将会被保留,只不过处于无效状态,不能被使用。第21页,共86页。序列的应用在

12、Oracle中建立自动增加字段,需要执行下面的操作:定义需要作为数字增加的列希望表DEPT的主键字段DEPTNO,每次插入行时自动增加1。表DEPT的结构如下所示:名称 是否为空? 类型- - -DEPTNO NOT NULL NUMBER(6)DNAME VARCHAR2(30)LOC VARCHAR2(60)第22页,共86页。注意:DEPTNO是主键,其值类型是NUMBER型,且长度是6位。所以将要建立的序列的最大值不能超过999999。 CREATE SEQUENCE sqc_dept_keyNOCYCLEMAXVALUE 999999START WITH 1;第23页,共86页。可通

13、过nextval和currval伪列来引用序列,每引用一次序列的伪列nextval,就会按照序列的定义产生一个新的序列码;通过序列的伪列currval可以反复利用当前的序列码。第24页,共86页。可以在如下场合使用序列的nextval和currval伪列:Insert语句的values子句中Select语句中的前面选择的表列名中Update语句中的set子句第25页,共86页。在如下场合不能够使用nextval或currval伪列:子查询视图或快照的定义查询带有distinct操作符的select语句带有group by或order by子句的select语句通过union、intersect

14、或minus与另一个select语句相结合的select语句中Select语句的where子句中Create table或alter table语句中的一个表列的default值定义中检查约束的条件中第26页,共86页。想了解一个已存在的序列信息,可以通过数据字典DBA_SEQUENCES、ALL_SEQUENCES和USER_SEQUENCES等几个视图来查看。第27页,共86页。无论什么时候当插入一行时,从序列中定一个触发器来设置列的值在DEPT表中建立插入触发器。使得每次插入一行时,DEPTNO字段自动通过访问序列sqc_dept_key来获取值。第28页,共86页。CREATE OR

15、REPLACE TRIGGER tri_dept_setdeptnoBEFORE INSERT ON deptFOR EACH ROWDECLAREp_nextno dept.deptno%type;BEGINSELECT sqc_dept_key.NEXTVAL INTO p_nextno FROM dual;:new.deptno := p_nextno;END;/第29页,共86页。在建立上面的触发器后,DEPT表中的字段DEPTNO总是使用所建立的序列来设置。即使插入语句为DEPTNO指定了一些其它的值,也是这样。定义一个触发器来防止更新此列。有了前面3步已经实现了对DEPT表主键自动

16、增加的功能,但如,有人更新了一条已经存在的记录,并将主键值改变为一个可能和将来插入相冲突的值该怎么办。所以这个值不能被更新,下面定义一个触发器来防止此列被更新。 第30页,共86页。CREATE OR REPLACE TRIGGER tri_dept_updeptnoBEFORE UPDATE OF deptno ON deptFOR EACH ROWBEGINRAISE_APPLICATION_ERROR(-20000, 不能更新自动增加类型的主键值!);END;/第31页,共86页。测试结果:首先向表DEPT中输入一行数据,查询其结果;然后再将此行数据字段DEPTNO更新。具体操作如下所示

17、:SQL insert into dept values(203, 203,203);SQL select * from dept;SQL update dept set deptno=3;第32页,共86页。索引管理Oracle支持两种基本的索引类型:B*Tree索引和位映射索引。B*Tree索引也是最常用的索引,它使用一个倒置的有序的树形结构来加速访问表中行的速度。 位映射索引常被用于那些包含较少唯一值的列。位映射索引总是对表中的每一行包含一条记录。记录的大小取决于索引列中唯一值的数量,因为位映射索引是由位的长字符串组成,如果列中的唯一值越多,需要位的长字符串就更长。 第33页,共86页。

18、在表EMP中存在下面一些数据:SQL select empno, ename, deptno from emp;EMPNO ENAME DEPTNO- - -3926 Chen de Jun 2027101 Hao xin 7033927 Zhan zou 3022911 Ge hen Cao 7031923 Bo Wei 4105836 Jiang qin 5034926 Luo qun 7006627 Li tao 8028312 Guo hua 4109536 Shun Jian 5038926 Liu quan 700第34页,共86页。对ENAME字段建立B*Tree索引,则其倒置的

19、树型结构如下所示:第35页,共86页。B*Tree索引有以下几个特点:它们保持数据有序,使得查询某一范围的记录更容易。对于用复合列索引,可用前沿列来快速查询,即使那个查询并未引用索引中所有列。它们自动保持平衡,由于所有的叶子结点在同一层,所以检索一条记录所需要的时间对索引中的全部数据是一致的。性能保持相对连续,即使当被索引的表的大小增加时也如此。第36页,共86页。雇员表EMPNO 是否退休 状态- - -3926 Yes C7101 Yes E3927 No U2911 No O1923 Yes E第37页,共86页。如果要在是否退休列上建立位映射索引,则其概念视图如下所示:EMPNO Ye

20、s No- -3926 1 07101 1 03927 0 12911 0 11923 1 0第38页,共86页。如果在状态列上建立位映射索引,则其概念视图如下所示:EMPNO C E U O- -3926 1 0 0 07101 0 1 0 03927 0 0 1 02911 0 0 0 11923 0 1 0 0第39页,共86页。从上面看出,如果所在列在只有2个唯一值“Yes/No”时,位映射索引只需要求2位的字符串就能表示,而当其有4个唯一值时,就至少需要有4位的字符串才能表示。所以当列的唯一值很多时,会导致位映射索引很大。所以对于那些有多个唯一值的列,不适合使用它们。一个列中唯一值数

21、量越多,位映射索引效率就越低。另外位映射索引仅在Oracle企业版中可用。第40页,共86页。创建索引使用CREATE INDEX命令创建索引的语法如下所示:CREATE UNIQUE INDEX indx_name ON tablename(colnames) TABLESPACE tablespacename STORAGE (storage_setting) NOLOGGING NOSORT|REVERSE第41页,共86页。UNIQUE:指定索引的每一条记录是唯一的。TABLESPACE:指定索引的表空间。STORAGE:指定存储参数,如果不指定将采用表空间默认的存储参数。NOLOGG

22、ING:指定建立索引而不向数据REDO日志文件记录索引的建立工作。使用此参数可以提高创建速度,缺点是由于没写入日志文件,所以如果通过日志文件恢复数据库以后,将无法恢复此索引,必须重建。第42页,共86页。NOSORT:指定创建索引时不用对表中索引数据进行排序。如果表中的数据已经被排序,可以使用此选项,如果在建立索引期间,发现表中的数据实际并未排序则将产生异常。REVERSE:指定建立反向索引。所谓反向索引是在每个索引记录中反转字节,比如chendj的反向索引值是jdnehc。当有大量索引记录以相同的字母开始时,并且反向这些字母将删除那个集合时,可以考虑采用此选项;但如果本身正在查询一个范围内的

23、数据时,就不适合使用REVERSE选项。第43页,共86页。为表DEPT的DNAME字段建立一个索引的例子。CREATE UNIQUE INDEX INDX_DEPT_DNAME ON DEPT (DNAME) TABLESPACE INDX STORAGE ( INITIAL 10K NEXT 20K MAXEXTENTS UNLIMITED) NOLOGGING REVERSE第44页,共86页。第45页,共86页。建立B-树索引Create unique index 模式.索引名称on (模式.)表名称(列名asc|desc ,列名asc|desc)Create index booknm

24、_indexon bookinfo(bookname);Create index authorinfo_indexon authorinfo(birthdate,hometown,briefhistory);Create index book_press_indexon bookinfo(pressname asc);第46页,共86页。建立位映射索引Create bitmap index 模式.索引名称on (模式.)表名称(列名asc|desc ,列名asc|desc)第47页,共86页。设有一个汽车数据表carinfo,记录非常多,有1000多万条记录,其中包含了大量的低基数列,如col

25、or(汽车颜色)、make(汽车品牌)、model(汽车型号)和year(出厂日期)等。这些列各自包含的值数目不超过100。create bitmap index car_bmp_indexon carinfo(color,make,model,year)第48页,共86页。查询索引信息视图名称说明DBA_INDEXES包含了数据库中所有表上的索引信息ALL_INDEXES包含了当前用户可以访问的所有表上的索引信息USER_INDEXES包含了当前用户所拥有的所有表上的索引信息DBA_IND_COLUMNS包含了数据库中所有与索引有关的表列信息ALL_IND_COLUMNS包含了当前用户可以访

26、问的所有表里的与索引有关的表列信息USER_IND_COLUMNS包含了当前用户拥有的所有表里的与索引有关的表列信息DBA_IND_EXPRESSIONS包含了数据库中所有基于函数索引的表达式信息ALL_IND_EXPRESSIONS包含了当前用户可以访问的所有表里基于函数索引的表达式信息USER_IND_EXPRESSIONS包含了当前用户拥有的所有表里的基于函数索引的表达式信息V$OBJECT_USAGE包含了索引使用的动态视图信息第49页,共86页。列出当前用户所拥有表中的所有索引的信息的命令:select index_name,index_type,uniquenessfrom use

27、r_indexes;查询某个索引对应的表名、表列、升降序等信息select index_name,table_name,column_name,column_position,descendfrom user_ind_columnswhere index_name=BOOKNM_INDEX;第50页,共86页。修改索引在建立索引后可以改变它,但是,在大多数情况下,仅限于改变其物理特点。不能向索引中增加列。Oracle允许进行下列变化:将一个索引移动到另一个表空间使用不同的存储参数重建索引对索引更名重新分配不使用的空间或分配一个新的空间标志此索引不可被使用其实重新将一个索引定位到另一个表空间,实

28、际上需要索引完全重建。只不过,Oracle使这个过程自动化了。开始或终止对一个索引的使用情况进行监控。第51页,共86页。可以使用ALTER INDEX命令来改变索引。 ALTER INDEX indx_dept_dname RENAME TO indx_dept_dname_new;另外使用REBUILD子句可以进行许多物理变化。重建索引时,Oracle通过使用一套新的存储参数从临时本中重建索引。 第52页,共86页。通过重建indx_dept_dname索引来改变其参数:ALTER INDEX indx_dept_dname REBUILDTABLESPACE usersNOLOGGING

29、STORAGE(INITIAL 5K NEXT 5K);ALTER INDEX BOOK_PRESS_INDEX REBUILDTABLESPACE USERSONLINESTORAGE(INITIAL 5K NEXT 5K);Tablespace users表明在users表空间里重建索引,Online指定在重建过程中希望用户访问表。第53页,共86页。把索引BOOKNM_INDEX的名称改为BOOKNAME_INDEXALTER INDEX BOOKNM_INDEXRENAME TO BOOKNAME_INDEX;SELECT index_name,table_name,column_na

30、me,descendFrom user_ind_columnswhere index_name=BOOKNAME_INDEX;第54页,共86页。也可以在OEM中,通过可视化的GUI界面来修改一个索引。其创建的步骤如下所示:启动OEM并注册到数据库。打开索引文件夹,选取准备更改的索引。右击此索引并从弹出菜单选择编辑。将弹出编辑窗口,其界面和新建索引类似。修改相关信息后点“确认”,OEM将执行索引的修改操作。第55页,共86页。删除索引可以使用DROP INDEX命令从数据库中删除索引。 DROP INDEX INDX_DEPT_DNAME;DROP INDEX AUTHORINFO_INDEX

31、;不能够直接删除与主键或唯一键约束相关的索引。必须先删除相应的主键或唯一键约束。在OEM中,可以通过在索引名字上右击并从弹出菜单中选择“移去”来删除一个索引。第56页,共86页。聚簇聚簇是(clusters)一种可选的数据库对象,它将经常在相同数据块中一起使用的表进行物理分组,使经常被同时访问的表在物理位置上可以存储在一起。聚簇分为表簇(table cluster)和哈希簇(hash cluster)。第57页,共86页。一个表簇由若干个共享着相同数据块的表构成,这些表具有一个或多个相同的表列并且常常一起使用。同一个表簇中的各个表中相关的列称为簇键(cluster key)。簇键用一个簇索引(

32、cluster index)来进行索引。对于簇中的多个表,簇键值只存储一次。第58页,共86页。创建表簇之前的准备:主要用于执行查询操作,而不是插入或更新操作。表经常一起被查询或连接。第59页,共86页。创建表簇CREATE CLUSTER 模式.表簇名称(列名1 数据类型,表列名2 数据类型)物理属性组句SIZE 数目 K|MTABLESPACE 表空间名称存储属性组句;size用于预计簇键和其相关的表列所需要的平均存储空间字节数。估计能够装入一个成簇的数据块内的簇键个数。限制了成簇数据块内簇键的个数,最大化优化了簇内键值的存储效率。簇和簇索引可以创建在不同的表空间里。第60页,共86页。在

33、表bookinfo和authorinfo里都有表列authorname,把这两个表生成簇,oracle会把authorname表列放在同一个数据块里。建立表簇book_author,以authorname为簇键。Create cluster book_author(authorname varchar2(20)pctused 80pctfree 5size 600tablespace usersstorage(initial 200knext 300kminextents 2maxextents 20pctincrease 33);第61页,共86页。创建表簇内的表(clustered tab

34、les)创建完表簇后,就可以在表簇内创建表了。Create table bookinfo(bookno number(38) primary key, bookname varchar2(40) not null, isbn varchar2(20), bookkind varchar2(10), authorname varchar2(20) not null references authorinfo,)Cluster book_author(authorname);第62页,共86页。Create table authorinfo(authorname varchar2(20) prim

35、ary key, birthdate date, hometown varchar2(40), briefhistory varchar2(200), contact varchar2(40)Cluster book_author(authorname);第63页,共86页。创建簇索引(cluster indexes)在向簇内表插入数据之前,可以为簇建一个索引。Create index 索引名称on cluster 表簇名称tablespace 表空间名称存储属性组句;第64页,共86页。为表簇book_author创建簇索引book_author_index。Create index boo

36、k_author_indexon cluster book_authortablespace usersstorage (initial 50knext 50kminextents 2maxextents 10pctincrease 33)pctfree 5;第65页,共86页。查看聚簇信息视图名称说明DBA_CLUSTERS包含了数据库中所有的聚簇信息ALL_CLUSTERS包含了当前用户可以访问的所有聚簇的信息USER_CLUSTERS包含了当前用户所拥有的所有聚簇的信息DBA_CLU_COLUMNS包含了数据库中所有与聚簇有关的表列信息USER_CLU_COLUMNS包含了当前用户拥有的

37、所有表里与聚簇有关的表列信息DBA_HASH_EXPRESSIONS包含了数据库中所有用于哈希簇的哈希函数的信息ALL_HASH_EXPRESSIONS包含了当前用户可以访问的用于哈希簇的哈希函数的信息USER_HASH_EXPRESSIONS包含了当前用户拥有的所有用于哈希簇的哈希函数的信息第66页,共86页。列出当前用户所拥有的所有聚簇信息的命令select cluster_name,tablespace_name,key_size, cluster_typeFrom user_clusters;第67页,共86页。修改聚簇信息可修改已创建的表簇的如下属性:物理属性(PCTFREE、PCT

38、USED、INITRANS、MAXTRANS和存储属性)存储簇键信息所需的平均空间(即SIZE)默认的并行度修改表簇book_author的size为900Alter cluster book_authorSize 900;Select cluster_name,key_size,cluster_typeFrom user_clustersWhere cluster_name=BOOK_AUTHOR;第68页,共86页。删除聚簇如果一个簇里的各个表不再需要了,就可以删除这个簇。当删掉一个簇时,簇里的表和相应的簇索引同时也被删掉。drop cluster stuenroll_cluster;如果

39、删除的簇中含有一个或多个表,想同时删除。drop cluster 聚簇名称 including tables;如果簇中的一个或多个表包含外键,参照了这个簇以外的表,想删除这个簇和内部的表。drop cluster 聚簇名称 including table cascade constraints;第69页,共86页。哈希簇在哈希簇中,表是基于哈希值组织的,在表的主键值上使用哈希函数可以得到这个哈希值。第70页,共86页。适用于哈希簇:大多数查询均为等值查询大小稳定不适用于哈希簇对表的查询返回结果不是单个值,而是一组键值大小不稳定应用程序第71页,共86页。创建哈希簇Create cluster

40、模式. 哈希簇名称 (列名1 数据类型 ,表列名2 数据类型)物理属性组句size 数目 k|mtablespace 表空间名称存储属性组句hash is hashkeys 数目;Hashkeys 数目用来指定哈希簇使用的哈希函数可以产生各不相同的哈希值的数量上限。Hash is用来指定一个用户的哈希函数,否则oracle使用内部定义哈希函数。第72页,共86页。不能够在哈希簇里创建簇键,也没有必要在哈希簇里创建索引。第73页,共86页。创建一个表stuenroll登记学生注册信息,表大小比较稳定,学生序号stuno,经常被等值查询。Create cluster stuenroll_clust

41、er (stuno number(5,0)tablespace usersstorage (initial 250knext 50kminextents 1maxextents 3hash is stuno hashkeys 150;Hash is stuno表示直接采用stuno作为哈希值,无需任何哈希函数。如果簇键的取值各不相同,分布平均,可直接采用簇键值作为哈希值。第74页,共86页。建完哈希簇后,就可以在簇里建表了Create table stuenroll(stuno number(5,0) primary key, )Cluster stuenroll_cluster(stuno)

42、;第75页,共86页。修改哈希簇与表簇基本相同,但对于哈希簇,size、hash is和hashkeys属性均不能在alter cluster命令中修改。如果想修改必须重新创建哈希簇,然后把数据信息从原来的哈希簇复制到新建的哈希簇里。第76页,共86页。同义词管理同义词是一个对象(表、视图、序列、过程、函数、包、快照或其它同义词)的一个代替的名字。同义词能使多个用户使用同一个对象而不用将模式作为前缀在对象前面。通过使用CREATE SYNONYM和DROP SYNONYM命令来管理同义词。对另一个数据对象而言同义词是一个别名。Oracle支持两种类型的同义词:公共的和专有的。其中公共同义词是针对所有用户的,相对而言专有同义词则只针对对象拥有者或被授予权限的用户。同义词的另一个用途是能使两个应用程序用两个不同名字指向同一个表。第77页,共86页。创建同义词采用命令方式建立同义词只要具有CREATE SYNONYM权限,就可以建立同义词,如果建立的是公共同义词,则需要有CREATE PUBLIC SYNONYM权限。建立了同义词,并不意味着就能访问此同义词代表的对象。必须要由目标对象的所有者授予你相应的访问权限,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论