汤阳光 - Oracle课程文档(二) 下载本文

5.1.8. 删除视图

删除视图只是删除视图的定义,并不会删除基表的数据

5.2. 序列

5.2.1. 什么是序列

序列: 可供多个用户用来产生唯一数值的数据库对象

? 自动提供唯一的数值 ? 共享对象

? 主要用于提供主键值

? 将序列值装入内存可以提高访问效率

5.2.2. 创建序列

? CREATE SEQUENCE 语句

例:

? 创建序列 DEPT_DEPTID_SEQ为表 DEPARTMENTS 提供主键

? 不使用 CYCLE 选项

5.2.3. 查询序列

? 查询数据字典视图 USER_SEQUENCES 获取序列定义信息

? 如果指定NOCACHE 选项,则列LAST_NUMBER 显示序列中下一个有效的值

5.2.4. NEXTVAL 和 CURRVAL 伪列

? NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用 ? CURRVAL 中存放序列的当前值

? NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效

5.2.5. 序列应用举例

5.2.6. 使用序列

? 将序列值装入内存可提高访问效率 ? 序列在下列情况下出现裂缝:

? ? ?

回滚

系统异常

多个表同时使用同一序列

? 如果不将序列的值装入内存(NOCACHE), 可使用表 USER_SEQUENCES 查看序列当

前的有效值

5.2.7. 修改序列

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

? 修改序列的注意事项

? 必须是序列的拥有者或对序列有 ALTER 权限 ? 只有将来的序列值会被改变

? 改变序列的初始值只能通过删除序列之后重建序列的方法实现

5.2.8. 删除序列

? 使用DROP SEQUENCE 语句删除序列 ? 删除之后,序列不能再次被引用

5.3. 索引

5.3.1. 索引说明

? 一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间中 ? 索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度

? 索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管理系统决定

何时使用索引. 用户不用在查询语句中指定使用哪个索引 ? 在删除一个表时, 所有基于该表的索引会自动被删除 ? 通过指针加速 Oracle 服务器的查询速度 ? 通过快速定位数据的方法,减少磁盘 I/O

5.3.2. 创建索引

? 自动创建: 在定义 PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引

? 手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询