:本人的技术有限,在下面的陈述中,如有不实的地方,希望各位能够给与指教,在此谢过
oracle的索引:
1、何谓索引:所谓的索引就是一个标识,在数据库中可以存在多条记录,为了区分每一条记录都不同于其它的记录,所以要用一个不重复的主键去区分,这个主键就是索引
2、创建索引:在oracle中没有自动生成主键的策略,所以我们要自己手动的去创建一个索引表,具体格式如下:create sequence table_sq
3、使用索引:使用索引有两种使用方式:
(1、使用当前的索引:select table_seq.currentval from dual
(2、使用下一个索引:select table_seq.nextval from dual
注意:如果是在索引表刚刚创建后就去使用当前索引的话,抱歉oracle不允许你这样操作,只有先操作select table_seq.nextval 才可以使用当前的索引
4、索引的属性:
maxvalue:表示该索引表的最大索引
minvalue:表示该索引表的最小索引
cache:缓存,设置在缓存中可以存在多少个序列元素在缓存中 cache 30 表示在创建索引的时候,可以允许有30个元素存在缓存中
5删除索引:使用drop sequence table_seq
6、修改索引:
start with:在创建索引的时候可以使用这个关键字: create sequence table_seq start with 1 表示第一个索引值为1
increate by:同样是在创建索引的时候使用,表示的是两个相邻的索引的间距,create sequence table_seq start with 2 increate by 2 这样的话索引表内容就为:2,4,6.......
cycle:这个关键字的使用是表示是否开启递归查询索引用法如下:
alter sequence talbe_seq cycle
在执行上面的语句后,就将该索引表的序列修改为了可循环,
alter sequence table_seq nocycle 将索引表的系列设置为不可循环
alter sequence table_seq maxvalue 20 设置该索引表的最大索引值为20
alter sequence table_seq nomaxvalue 设置索引表的最大值为无限大
主要:修改索引的时候,不能修改索引的初始值,(除非删除重建)
最小值不能大于当前值
最大值不能小于当前值