序列、索引、同义词.ppt

上传人:牧羊曲112 文档编号:6279767 上传时间:2023-10-13 格式:PPT 页数:27 大小:212.50KB
返回 下载 相关 举报
序列、索引、同义词.ppt_第1页
第1页 / 共27页
序列、索引、同义词.ppt_第2页
第2页 / 共27页
序列、索引、同义词.ppt_第3页
第3页 / 共27页
序列、索引、同义词.ppt_第4页
第4页 / 共27页
序列、索引、同义词.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《序列、索引、同义词.ppt》由会员分享,可在线阅读,更多相关《序列、索引、同义词.ppt(27页珍藏版)》请在三一办公上搜索。

1、十三.其它的数据库对象,目标,结束本节课后,应当达到如下目标:描述数据库对象和它们的用处创建、维护、使用序列创建和维护索引创建私有和公有的同义词,数据库对象,描述基本的数据库对象,由行和列组成逻辑上代表从一个或者多个表中取出的数据集产生主键的值提高某些查询的性能一个数据库对象的别名,对象TableViewSequenceIndexSynonym,什么是序列?,自动产生唯一的数字是一个可以共享的数据库对象典型地用于产生数据库表中的主键值能够节省应用程序的代码当缓存在内存中时,能够提高存取的效率,CREATE SEQUENCE语句,定义一个可以自动产生序列值的序列.,CREATE SEQUENCE

2、 sequenceINCREMENT BY nSTART WITH nMAXVALUE n|NOMAXVALUEMINVALUE n|NOMINVALUECYCLE|NOCYCLECACHE n|NOCACHE;,创建一个序列,创建一个名称为 DEPT_DEPTNO的序列值,以用于DEPT表.不要设置 CYCLE 选项.,SQL CREATE SEQUENCE dept_deptno 2 INCREMENT BY 1 3 START WITH 91 4 MAXVALUE 100 5 NOCACHE 6 NOCYCLE;Sequence created.,NEXTVAL和 CURRVAL伪列,N

3、EXTVAL 返回下一个可用的序列值.每访问一次,它将产生一个唯一的新值,即使对不同的用户,该值也是唯一的.CURRVAL 返回当前的序列值.只有当NEXTVAL被访问之后,CURRVAL伪列才能包含一个值.,NEXTVAL和 CURRVAL伪列,NEXTVAL 返回下一个可用的序列值.每访问一次,它将产生一个唯一的新值,即使对不同的用户,该值也是唯一的.CURRVAL 返回当前的序列值.只有当NEXTVAL被访问之后,CURRVAL伪列才能包含一个值.,序列的使用,向表中插入一个位于SAN DIEGO,名为“MARKETING”的部门.浏览序列 DEPT_DEPTNO 的当前值.,SQL I

4、NSERT INTOdept(deptno,dname,loc)2 VALUES(dept_deptno.NEXTVAL,3 MARKETING,SAN DIEGO);1 row created.,SQL SELECTdept_deptno.CURRVAL 2 FROMdual;,使用序列,将序列值缓存在内存中,使得这些值访问起来更快.如果发生下列情况,可能使得一个表中的序列值之间产生间隔,而不是连续的:回滚操作产生系统崩溃序列值同时也用于其它表如果一个序列是以 NOCACHE选项建立的,那么可以通过查询USER_SEQUENCES 表来查看下一个可用的序列值,而不会使序列的当前值增加.,修改

5、一个序列,可以更改序列的增量值、最大值、最小值、循环或者缓存选项。,SQL ALTER SEQUENCE dept_deptno 2 INCREMENT BY 1 3 MAXVALUE 999999 4 NOCACHE 5 NOCYCLE;Sequence altered.,修改序列的指导,必须是序列的拥有者,或者拥有序列的修改权限.只有将来会用到序列值会受到影响.只能重建序列,才能更改序列的START WITH选项.序列的修改可能会带来冲突,例如MAXVALUE如果小于当前值就会产生冲突.,删除一个序列,使用DROP SEQUENCE 命令来删除一个数据字典中的序列.一旦序列被删除,那么该序

6、列就不可以访问了.,SQL DROP SEQUENCE dept_deptno;Sequence dropped.,索引是什么?,一个数据库模式对象Oracle利用索引来加快对数据行的访问依靠索引来快速定位数据,从而减少了磁盘I/O的次数与使用它的表是相互独立的数据库对象Oracle 服务器自动对索引进行维护和使用,索引是如何创建的?,自动创建:当在创建表时,如果指定了 PRIMARY KEY或者 UNIQUE约束,那么将自动创建索引.手动创建:用户可以在某个列上建立非唯一的索引,以加快基于该列的查询.,创建一个索引,创建索引,以提高对表EMP的ENAME列的访问速度.,SQL CREATE

7、INDEX emp_ename_idx 2 ON emp(ename);Index created.,CREATE INDEX indexON table(column,column.);,在一个列上或者多个列上创建索引.,什么时候创建索引,欲创建索引的列在 WHERE子句或者连接条件中频繁使用.该列所包含的不同值很多.该列包含大量的空值.表中的数据行数非常大,而且只有 24%数据行被查询出来.,什么时候不必创建索引,表是空的.列在查询条件中不经常使用.大多数基于该表的查询,所查询出的数据量远多于24%行.表被频繁修改.,确认索引创建结果,USER_INDEXES 数据字典视图包含用户创建的索

8、引的名字和它唯一性.USER_IND_COLUMNS 视图包含索引的名字、表名、列名.,SQL SELECTic.index_name,ic.column_name,2ic.column_position col_pos,ix.uniqueness 3 FROMuser_indexes ix,user_ind_columns ic 4 WHEREic.index_name=ix.index_name 5 ANDic.table_name=EMP;,基于函数的索引,基于函数的索引也就是基于表达式的索引.索引表达式由表的列、常量、SQL函数或者用户自定义函数组成.,SQL CREATE TABLE

9、 test(col1 NUMBER);SQL CREATE INDEX test_index on test(col1,col1+10);SQL SELECT col1+10 FROM test;,删除索引,从数据字典中删除一个索引.从数据字典中删除 EMP_ENAME_IDX 索引.要删除一个索引,必须是索引的拥有者,或者具有 DROP ANY INDEX的权限.,SQL DROP INDEX emp_ename_idx;Index dropped.,SQL DROP INDEX index;,同义词,通过创建一个同义词(对象的另一个名字)来简化对数据库中对象的存取.缩短了对象的名字长度.,

10、CREATE PUBLIC SYNONYM synonymFOR object;,创建和删除同义词,SQL CREATE SYNONYMd_sum 2 FOR dept_sum_vu;Synonym Created.,SQL DROP SYNONYM d_sum;Synonym dropped.,为视图 DEPT_SUM_VU 创建一个简短的名字.,丢弃一个同义词.,总结,使用序列来自动产生一个唯一值,用于主键等.从 USER_SEQUENCES 字典表中查询序列的信息.创建索引来加快数据的存取.通过USER_INDEXES 字典表来查看索引的信息.使用同义词为一个数据库对象取一个别名.,作业概览,创建一个序列使用序列创建一个非唯一索引获取并展示关于序列和索引的数据字典信息丢弃索引,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号