文档详情

《oracle教学课件》尚硅谷-宋红康-11-其它数据库对象.pptx

发布:2025-05-06约3.14千字共26页下载文档
文本预览下载声明

第11节

其它数据库对象讲师:宋红康新浪微博:尚硅谷-宋红康

通过本章学习,您将可以:创建、维护和使用序列创建和维护索引创建同义词目标

常见的数据库对象了解对象 描述表基本的数据存储集合,由行和列组成。视图 从表中抽出的逻辑上相关的数据集合。序列 提供有规律的数值。索引 提高查询的效率同义词 给对象起别名

什么是序列?序列:可供多个用户用来产生唯一数值的数据库对象自动提供唯一的数值共享对象主要用于提供主键值将序列值装入内存可以提高访问效率

CREATESEQUENCE语句[{CYCLE|NOCYCLE}]--是否需要循环[{MAXVALUEn|NOMAXVALUE}][INCREMENTBYn]--每次增长的数值[{CACHEn|NOCACHE}];--是否缓存登录[{MINVALUEn|NOMINVALUE}]CREATESEQUENCEsequence[STARTWITHn]--从哪个值开始定义序列:

创建序列创建序列DEPT_DEPTID_SEQ为表DEPARTMENTS提供主键不使用CYCLE选项CREATESEQUENCEdept_deptid_seqINCREMENTBY10STARTWITH120MAXVALUE9999NOCACHENOCYCLE;Sequencecreated.

Createsequenceseq;Selectseq.nextvalfromdual;Insertintoempvalues(seq.nextval,’c’);其中createtableempasselectemployee_id,last_namenamefromemployeeswhere1=2;

查询序列查询数据字典视图USER_SEQUENCES获取序列定义信息如果指定NOCACHE选项,则列LAST_NUMBER显示序列中下一个有效的值SELECT sequence_name,min_value,max_value,increment_by,last_numberFROM user_sequences;

NEXTVAL和CURRVAL伪列NEXTVAL返回序列中下一个有效的值,任何用户都可以引用CURRVAL中存放序列的当前值NEXTVAL应在CURRVAL之前指定,否则会报CURRVAL尚未在此会话中定义的错误。

序列应用举例序列DEPT_DEPTID_SEQ的当前值添加标题INSERTINTOdepartments(department_id,添加标题department_name,location_id)添加标题VALUES(dept_deptid_seq.NEXTVAL,添加标题Support,2500);添加标题rowcreated.添加标题SELECT dept_deptid_seq.CURRVAL添加标题FROM dual;添加标题

使用序列将序列值装入内存可提高访问效率序列在下列情况下出现裂缝:回滚系统异常多个表同时使用同一序列如果不将序列的值装入内存(NOCACHE),可使用表USER_SEQUENCES查看序列当前的有效值

修改序列修改序列的增量,最大值,最小值,循环选项,或是否装入内存ALTERSEQUENCEdept_deptid_seqINCREMENTBY20MAXVALUE999999NOCACHENOCYCLE;Sequencealtered.

修改序列的注意事项必须是序列的拥有者或对序列有ALTER权限只有将来的序列值会被改变改变序列的初始值只能通过删除序列之后重建序列的方法实现

删除序列使用DROPSEQUENCE语句删除序列删除之后,序列不能再次被引用DROPSEQUENCEdept_deptid_seq;Sequencedropped.

索引:一种独立于表的模式对象,可以存储在与表不同的磁盘或表空间中索引被删除或损坏,不会对表产生影响,其影响的只是查询的速度索引一旦建立,Oracle管理系统会对其进行自动维护,而且由Oracle管理系统决定何时使用索引。用户不用在查询语句中指定使用哪个索引在删除一个表时,所有基于该表的索引会自动被删除通过指针加速Oracle服务器的查询速度通过快速定位数据的方法,减少磁盘I/O索引

创建索引自动创建:在定义PRIMARYKEY或UNIQUE约束后系统自动在相应的列上创建唯一性索引手动创建:用户可以在其它列上创建非唯一的索引,以加速

显示全部
相似文档