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 约束后系统自动在相应的列上创建唯一性索引
? 手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询