索引序列同义词数据字典_第1页
索引序列同义词数据字典_第2页
索引序列同义词数据字典_第3页
索引序列同义词数据字典_第4页
索引序列同义词数据字典_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、复 习,1、约束的延迟,创建约束时默认使用NOT DEFERRABLE,即约束不可延迟。 创建可延迟约束使用DEFERRABLE关键字,并且可以指定INITIALLY IMMEDIATE或INITIALLY DEFERRED说明可延迟约束在初始状态下是立即检查还是延迟检查,默认为立即检查。,CREATE TABLE scott.new_dept (deptno number primary key deferrable initially immediate, dname varchar2(20) unique),2、临时表,Oracle数据库根据临时表的性质不同,可以分为事务临时表与会话临时

2、表。,CREATE GLOBAL TEMPORARY TABLE table_name (col_name date_type, .),注意:一般情况下,如果在创建临时表时没有特殊指明,则该表默认为事务临时表。,ON COMMIT DELETE ROWS,ON COMMIT PRESERVE ROWS,3、创建视图,create or replaceforce|noforce view v_name (alias,) as subquery with check option constraint constraint_name with read only,with check option

3、选项:,注: 要在此视图上执行insert语句,那么插入的值必须满足子查询中的查询条件。 要执行update语句,那只能修改除约束条件中涉及列之外的列。,create view scott.emp_vu10 as select * from scott.emp where deptno=10 with check option constraint chk_vu10,可更新的连接视图,连接视图是基于连接的视图。一个连接视图上的DML语句只能修改视图中的一个键值保留表(key-preserved table)。,如果连接视图中的一个基础表的主键在它的视图中仍然存在,并且在连接视图中仍然是主键,则

4、称这个基表为“键值保存表”。,在连接视图上,对视图进行插入、删除、更新等操作时,只能够对视图中的键值保存表的列进行更新。,键值保存表,一般地,由主外键关系的2个表组成的连接视图,外键表(子表)就是键值保存表,而主键表(父表)不是。,删除视图,drop view命令,drop view ,索 引,NEW,用户对数据库最频繁的操作是进行数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当表中数据很多时,搜索数据就需要很长的时间,这就造成了服务器资源的浪费。为了提高检索数据的能力,数据库引入了索引机制。,为什么要引入索引?,索引是一个单独的、物理的数据库结构,它是表中一列或多列值

5、的集合和相应行所对应的rowid。,索引的概念,数据库中引入索引的目的是为了提高对表中数据的查询速度。如果一个表没有创建索引,则对该表进行查询时需要进行全表扫描;如果对表创建了索引,在进行有条件查询时,系统根据查询条件中的索引值信息,利用特定的排序算法在索引表中很快的查询到相应的索引值及其对应rowid,根据rowid可以在数据库表中很快查询到符合条件的记录。,索引的作用及原理,注: 并不是只要使用索引就能提高检索速度,例如无条件查询时,不使用索引就比使用索引要快。,通用规则:只用当经常查询索引列中的数据时,才需要在表上创建索引。,Oracle的索引主要包含两类:BTree索引和位图索引。默认

6、情况下大多使用Btree索引,该索引就是通常所见的唯一索引、非唯一性索引、单列索引、复合索引等。,索引的分类,索引的分类BTree索引,创建索引- create index命令,create unique bitmap index index_name on table_name (col_name1ASC|DESC, ),unique:建立唯一索引。,bitmap:建立位图索引。,注:在默认情况下,create index命令创建的是非唯一的B树索引。,例1:在emp1表中,为员工工资和奖金建立索引。,create index scott.sal_comm_index on scott.em

7、p1 (sal , comm),例2: 在emp1表中,为员工姓名建立位图索引。,create bitmap index scott.ename_index on scott.emp1 (ename),练 习,在emp1表中,为员工号建立唯一索引。,create unique index scott.empno_index on scott.emp1 (empno),查看索引,select * from user_indexes where table_name=表名; select * from user_ind_columns where table_name=表名;,查看索引,例如:查看

8、EMP1表中所创建有哪些索引? select index_name,index_type,table_name from user_indexes where table_name=EMP1 select * from user_ind_columns where table_name=EMP1,删除索引-drop index 命令,drop index index_name,例如: drop index scott.sal_comm_index drop index scott.empno_index drop index scott.ename_index,序 列,序列的概念,序列是一个数

9、字生成器,用于生成连续的、唯一的数字。序列也是一种数据库对象。,当需要使用顺序递增的数字时,如果不使用序列,那么需要编写程序生成数字值,使用序列可以简化这种处理操作。例如employee_id列数值顺序递增,并且不允许重复,那么可以使用序列为其提供数据。,创建序列- create sequence命令,create sequence sequence_name increment by n start with n minvalue n |nominvalue maxvalue n |nomaxvalue cycle | nocycle cache n | nocache 见表46,例1:创建

10、序列deptno_seq,开始值为50,增量为10,最大值为99,占用内存块大小为10。,create sequence scott.deptno_seq start with 50 increment by 10 maxvalue 99 cache 10,练习:创建序列emp1_seq,从1自动增加,达到10000后自动从1开始。,create sequence scott.emp1_seq start with 1 increment by 1 maxvalue 10000 cycle,使用序列,当使用序列时,必须通过属性nextval和currval来引用序列,引用方法:序列名.属性,n

11、extval:用于返回下一个序列值。即:Increment by定义的增加值。 currval:用于返回当前序列值。,注意:当第一次引用序列时,必须使用nextval,返回的是初始值。,例:利用序列deptno_seq为dept1表提供部门号。,insert into scott.dept1(deptno,dname,loc) values (scott.deptno_seq.nextval, DEVELOPMENT, NEW YORK),当建立序列后,如果要使用序列为顺序递增的主键列提供数据,那么可以使用nextval。,使用序列,例:确定序列deptno_seq的当前序列号。,select

12、 scott.deptno_seq.currval from dual,如果要确定当前序列号,那么可以使用属性currval。,使用序列,练习:在表emp1中,使用emp1_seq序列为其插入的记录自动编号。,INSERT INTO emp1 VALUES (emp1_seq.nextval, LEWIS, CLERK,7902, SYSDATE, 1200, NULL, 20),1、通过使用cache选项建立序列,可以设置在内存中预分配的序列号个数。该选项设置越大,序列的访问性能会越好,但也会占用更多的内存空间,并且可能出现断号,建议设为nocache或cache 1。,使用序列的注意事项:

13、,2、当执行rollback语句取消事务操作时,会导致出现序列缺口。例如,当使用序列deptno_seq为部门号提供数据时,如果执行rollback取消事务,那么会导致部门号的值不连续(如50,70,80等)。,修改序列alter sequence命令,alter sequence sequence_name increment by n maxvalue n minvalue n cycle | nocycle cache n | nocache,注:序列的初始值不能修改,即不能修改start with 。,例:将序列deptno_seq的最大值修改为200,缓存值修改为nocache。,a

14、lter sequence scott.deptno_seq maxvalue 200 nocache,修改序列alter sequence命令,删除序列drop sequence命令,drop sequence sequence_name,例如:drop sequence deptno_seq drop sequence emp1_seq,同 义 词,同义词的概念,同义词是为表、视图和序列等对象起的另外一个名字。,建立同义词的好处:,1、引用对象不需要指名对象的所有者。 2、引用对象不需要指出它所位于的数据库。 3、为对象提供另一个名字。,同义词的分类,公共同义词:是指所有用户都可以直接引用

15、的同义词,并且这种同义词由public用户组所拥有。 要以系统管理员身份登陆创建。,私有同义词:是指只能由其方案用户直接引用的同义词。,注: 1、如果数据库用户要访问公共同义词,那么可以直接引用,不需要加方案名; 2、如果数据库用户要访问其他方案的私有同义词,那么必须要加方案名作为前缀(方案名.同义词名)。,建立公共同义词,create public synonym synomym_name for schema. object,例:给scott.emp表建立公共同义词public_emp。,create public synonym public_emp for scott.emp,当执行了

16、以上语句后,会建立公共同义词public_emp,该同义词属于public用户组,所以任何用户都可以直接引用该同义词。,例:,Select ename,sal,job From public_emp Where ename=SCOTT,使用公共同义词,建立私有同义词,create synonym synomym_name for schema. object,例:给scott.dept表建立私有同义词private_dept。,create synonym scott.private_dept for scott.dept,当执行了以上语句后,会建立私有同义词private_emp,因为该同义

17、词是私有同义词,所以只有当前用户可以直接引用,而其他任何用户引用该同义词都必须加方案名。,例:,Select dname,loc From scott.private_dept,使用私有同义词,删除同义词drop synonym命令,drop public synonym synonym_name,drop synonym synonym_name,例如: drop public synonym public_emp; drop synonym scott.private_dept;,数 据 字 典,数据字典,数据字典(Data Dictionary,简称DD)是以数据表和视图为主要存在形式的

18、。数据库字典描述了实际数据是如何组织的。对它们可以象处理其他数据库表或视图一样进行查询,但不能进行任何修改。,Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。,数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。,数据字典的分类,静态数据字典:主要是在用户访问数据字典时不会发生改变。,动态数据字典:是依赖数据库运行的性能,反映数据库运行的一些内在信

19、息。,在Oracle数据库字典中,许多视图都有三个不同的实例,它们的前缀分别为“USER_”、“ALL_”、“DBA_”,“USER_”为前缀的数据库字典视图通常记录执行查询的账户所拥有的对象的信息。,“ALL_”为前缀的数据库字典视图通常记录包括执行查询的帐户所拥有的对象的信息及授权至PUBLIC的帐户用户所拥有的对象的信息。,“DBA_”为前缀的数据库字典视图包含所有数据库对象的信息,而不管其所有者。,其他的字典视图中主要的是V$视图,之所以这样叫是因为他们都是以V$或GV$开头的。,数据字典的分类,注:V$视图是SYS用户所拥有的,在缺省状况下,只有SYS用户和拥有DBA系统权限的用户可

20、以看到所有的视图,没有DBA权限的用户可以看到USER_和ALL_视图。,数据字典的分类,数据字典-静态数据字典,user_tables :该数据字典视图用于显示当前用户的所有表信息。,conn scott/tigerbuaa108 select table_name from user_tables,user_objects :该数据字典视图用于显示当前用户的所有数据库对象。,conn scott/tigerbuaa108 select object_name,object_type from user_objects,数据字典-静态数据字典,user_constraints :该数据字典视

21、图用于显示当前用户的所有约束信息。,select constraint_name,constraint_type from user_constraints Where table_name=EMP,user_cons_columns :该数据字典视图用于显示当前用户约束所对应的表列。,select constraint_name,column_name from user_cons_columns,数据字典-静态数据字典,user_sequences :该数据字典视图用于显示当前用户所有序列的详细信息。,select sequence_name,min_value,max_value,increm

温馨提示

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

评论

0/150

提交评论