版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、十三.其它的数据库对象,目标,结束本节课后,应当达到如下目标: 描述数据库对象和它们的用处 创建、维护、使用序列 创建和维护索引 创建私有和公有的同义词,数据库对象,描述 基本的数据库对象,由行和列组成 逻辑上代表从一个或者多个表中取出的数据集 产生主键的值 提高某些查询的性能 一个数据库对象的别名,对象 Table View Sequence Index Synonym,什么是序列?,自动产生唯一的数字 是一个可以共享的数据库对象 典型地用于产生数据库表中的主键值 能够节省应用程序的代码 当缓存在内存中时,能够提高存取的效率,CREATE SEQUENCE语句,定义一个可以自动产生序列值的序
2、列.,CREATE SEQUENCE sequence INCREMENT BY n START WITH n MAXVALUE n | NOMAXVALUE MINVALUE n | NOMINVALUE CYCLE | NOCYCLE CACHE 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; Sequ
3、ence created.,NEXTVAL和 CURRVAL伪列,NEXTVAL 返回下一个可用的序列值. 每访问一次,它将产生一个唯一的新值,即使对不同的用户,该值也是唯一的. CURRVAL 返回当前的序列值. 只有当NEXTVAL被访问之后,CURRVAL伪列才能包含一个值.,NEXTVAL和 CURRVAL伪列,NEXTVAL 返回下一个可用的序列值. 每访问一次,它将产生一个唯一的新值,即使对不同的用户,该值也是唯一的. CURRVAL 返回当前的序列值. 只有当NEXTVAL被访问之后,CURRVAL伪列才能包含一个值.,序列的使用,向表中插入一个位于SAN DIEGO,名为 “M
4、ARKETING” 的部门. 浏览序列 DEPT_DEPTNO 的当前值.,SQL INSERT INTOdept(deptno, dname, loc) 2 VALUES(dept_deptno.NEXTVAL, 3 MARKETING, SAN DIEGO); 1 row created.,SQL SELECTdept_deptno.CURRVAL 2 FROMdual;,使用序列,将序列值缓存在内存中,使得这些值访问起来更快. 如果发生下列情况,可能使得一个表中的序列值之间产生间隔,而不是连续的: 回滚操作产生 系统崩溃 序列值同时也用于其它表 如果一个序列是以 NOCACHE选项建立的
5、, 那么可以通过查询USER_SEQUENCES 表来查看下一个可用的序列值,而不会使序列的当前值增加.,修改一个序列,可以更改序列的增量值、最大值、最小值、循环或者缓存选项。,SQL ALTER SEQUENCE dept_deptno 2 INCREMENT BY 1 3 MAXVALUE 999999 4 NOCACHE 5 NOCYCLE; Sequence altered.,修改序列的指导,必须是序列的拥有者,或者拥有序列的修改权限. 只有将来会用到序列值会受到影响. 只能重建序列,才能更改序列的START WITH选项. 序列的修改可能会带来冲突,例如MAXVALUE如果小于当前值
6、就会产生冲突.,删除一个序列,使用DROP SEQUENCE 命令来删除一个数据字典中的序列. 一旦序列被删除,那么该序列就不可以访问了.,SQL DROP SEQUENCE dept_deptno; Sequence dropped.,索引是什么?,一个数据库模式对象 Oracle利用索引来加快对数据行的访问 依靠索引来快速定位数据,从而减少了磁盘I/O的次数 与使用它的表是相互独立的数据库对象 Oracle 服务器自动对索引进行维护和使用,索引是如何创建的?,自动创建:当在创建表时,如果指定了 PRIMARY KEY或者 UNIQUE约束,那么将自动创建索引. 手动创建:用户可以在某个列上
7、建立非唯一的索引,以加快基于该列的查询.,创建一个索引,创建索引,以提高对表EMP的ENAME列的访问速度.,SQL CREATE INDEX emp_ename_idx 2 ON emp(ename); Index created.,CREATE INDEX index ON table (column, column.);,在一个列上或者多个列上创建索引.,什么时候创建索引,欲创建索引的列在 WHERE子句或者连接条件中频繁使用. 该列所包含的不同值很多. 该列包含大量的空值. 表中的数据行数非常大,而且只有 24% 数据行被查询出来.,什么时候不必创建索引,表是空的. 列在查询条件中不经
8、常使用. 大多数基于该表的查询,所查询出的数据量远多于24% 行. 表被频繁修改.,确认索引创建结果,USER_INDEXES 数据字典视图包含用户创建的索引的名字和它唯一性. 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_
9、name = EMP;,基于函数的索引,基于函数的索引也就是基于表达式的索引. 索引表达式由表的列、常量、 SQL函数或者用户自定义函数组成.,SQL CREATE TABLE 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;,同义词,通过创建一个同义词 (对象的另一个名字)来简化对数据库中对象的存取. 缩短了对象的名字长度.,CREATE PUBLIC SYNONYM synonym FOR object;,创建和删除同义词,SQL CREATE SYNONYMd_sum 2 FOR dept_sum_vu; Synonym Created.,SQL DROP SYNONYM d_sum; Synonym dropped.,为视图 DEPT_SUM_VU 创建一个简短的名字.,丢弃一个同义词.,总结,使用序列来自动产生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海工商外国语职业学院《大学高等数学》2025-2026学年期末试卷(A卷)
- 制造业产业链协同发展制度
- 挤压综合征病理生理机制总结2026
- 7.3万有引力理论的成就 课件-高一下学期物理人教版必修第二册
- 通俗易懂的金融知识普及教程
- 2025新会计专业技术资格核心题库及答案
- 2026年区块链技术投资合同协议
- 养殖垫料回收利用服务协议
- 2026农业现代化技术应用及投资前景分析报告
- 2026农业气象服务商业化路径与付费意愿分析
- PAS 2050:2011-商品和服务在生命周期内的温室气体排放评价规范(英文)
- 23J916-1 住宅排气道(一)
- DL-T2078.2-2021调相机检修导则第2部分:保护及励磁系统
- 手术患者安全转运与交接
- GB/T 43924.2-2024航空航天MJ螺纹第2部分:螺栓和螺母螺纹的极限尺寸
- 农业机械设计手册上册
- 2024年广东中山市文化广电旅游局招聘笔试冲刺题
- MSA测量系统线性分析报告
- 检具的设计、制造和使用
- 手术医师技术档案年度考核表
- QC成果QC成果点评集合
评论
0/150
提交评论