资源描述:
《Oracle公司内部数据库培训资料12其它数据库对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、其它数据库对象目标通过本章学习,您将可以:创建,维护,和使用序列创建和维护索引创建私有和公有同义词常见的数据库对象对象描述表基本的数据存储集合,由行和列组成。视图从表中抽出的逻辑上相关的数据集合。序列提供有规律的数值。索引提高查询的效率同义词给对象起别名什么是序列?序列:自动提供唯一的数值共享对象主要用于提供主键值代替应用代码将序列值装入内存可以提高访问效率CREATESEQUENCE语句定义序列:CREATESEQUENCEsequence[INCREMENTBYn][STARTWITHn][{MAXVALUEn
2、NOMAXVAL
3、UE}][{MINVALUEn
4、NOMINVALUE}][{CYCLE
5、NOCYCLE}][{CACHEn
6、NOCACHE}];创建序列创建序列DEPT_DEPTID_SEQ为表DEPARTMENTS提供主键不使用CYCLE选项CREATESEQUENCEdept_deptid_seqINCREMENTBY10STARTWITH120MAXVALUE9999NOCACHENOCYCLE;Sequencecreated.查询序列查询数据字典视图USER_SEQUENCES获取序列定义信息如果指定NOCACHE选项,则列LAST_NUM
7、BER显示序列中下一个有效的值SELECTsequence_name,min_value,max_value,increment_by,last_numberFROMuser_sequences;NEXTVAL和CURRVAL伪列NEXTVAL返回序列中下一个有效的值,任何用户都可以引用CURRVAL中存放序列的当前值NEXTVAL应在CURRVAL之前指定,二者应同时有效序列应用举例序列DEPT_DEPTID_SEQ的当前值INSERTINTOdepartments(department_id,department_name,lo
8、cation_id)VALUES(dept_deptid_seq.NEXTVAL,'Support',2500);1rowcreated.SELECTdept_deptid_seq.CURRVALFROMdual;使用序列将序列值装入内存可提高访问效率序列在下列情况下出现裂缝:回滚系统异常多个表同时使用同一序列如果不讲序列的值装入内存(NOCACHE),可使用表USER_SEQUENCES查看序列当前的有效值修改序列修改序列的增量,最大值,最小值,循环选项,或是否装入内存ALTERSEQUENCEdept_deptid_seqINC
9、REMENTBY20MAXVALUE999999NOCACHENOCYCLE;Sequencealtered.修改序列的注意事项必须是序列的拥有者或对序列有ALTER权限只有将来的序列值会被改变改变序列的初始值只能通过删除序列之后重建序列的方法实现其它的一些限制删除序列使用DROPSEQUENCE语句删除序列删除之后,序列不能再次被引用DROPSEQUENCEdept_deptid_seq;Sequencedropped.索引索引:一种数据库对象通过指针加速Oracle服务器的查询速度通过快速定位数据的方法,减少磁盘I/O索引与表相
10、互独立Oracle服务器自动使用和维护索引创建索引自动创建:在定义PRIMARYKEY或UNIQUE约束后系统自动在相应的列上创建唯一性索引手动创建:用户可以在其它列上创建非唯一的索引,以加速查询创建索引在一个或多个列上创建索引在表EMPLOYEES的列LAST_NAME上创建索引CREATEINDEXemp_last_name_idxONemployees(last_name);Indexcreated.CREATEINDEXindexONtable(column[,column]...);什么时候创建索引以下情况可以创建索引:列
11、中数据值分布范围很广列中包含大量空值列经常在WHERE子句或连接条件中出现表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%什么时候不要创建索引下列情况不要创建索引:表很小列不经常作为连接条件或出现在WHERE子句中查询的数据大于2%到4%表经常更新加索引的列包含在表达式中SELECTic.index_name,ic.column_name,ic.column_positioncol_pos,ix.uniquenessFROMuser_indexesix,user_ind_columnsicWHEREic.index_
12、name=ix.index_nameANDic.table_name='EMPLOYEES';查询索引可以使用数据字典视图USER_INDEXES和USER_IND_COLUMNS查看索引的信息基于函数的索引基于函数的索引是一个基于表