1.序列sequence
1. 序列的基本介绍
可供多个用户用来产生唯一数值的数据库对象
自动提供唯一的数值
共享对象
主要用于提供主键值
将序列值装入内存可以提高访问效率
2. 创建序列的语法
CREATE SEQUENCE sequence
[INCREMENT BY n] --每次增长的数值
[START WITH n] --从哪个值开始
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}] --是否需要循环
[{CACHE n | NOCACHE}]; --是否缓存登录
例子
create sequence empseq
increment by 10–每次增长10
start with 10–从10 开始
maxvalue 100 --最大值为100
minvalue 10–最小值为10
cycle --需要循环
nocache --不需要缓存
这里有两个语句分别是求当前序列的值和下一个序列的值
不过刚开始的时候只能先使用下一个序列的值,这是因为刚开始sequence还没有值,当前值不知道是什么。
select empseq.nextval from dual;
select empseq.currval from dual;
创建一个表来使用上面的序列作为主键值
insert into emp
values(empseq.nextvla,‘c’,23,4500)
3. 查询序列
SELECT sequence_name, min_value, max_value,
increment_by, last_number
FROM user_sequences;
4. 修改序列
alter sequence empseq
increment by 1
nocycle
nocache;
5.删除序列
drop sequence empseq;
2.索引
索引:
一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间中
索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度
索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管理系统决定何时使用索引。
用户不用在查询语句中指定使用哪个索引
在删除一个表时,所有基于该表的索引会自动被删除
通过指针加速 Oracle 服务器的查询速度
通过快速定位数据的方法,减少磁盘 I/O
1.创建索引
手动创建索引
create index emp01_id_ix 索引名
on emp01(employee_id) 表名(id)
2.删除索引
drop index emp01_id _ix