序列:用来生成连续的整数数据的对象
说明:
1、它可以用来生成数据
2、生成的数据是 数字型 的值,并且都是整数
----语法结构:
--简易的创建序列的语法结构: ----用的比较多
CREATE SEQUENCE 序列名;
--开发规范: 序列名以 SEQ_ 开头
--比如:
CREATE SEQUENCE SEQ_TEST1;
--完整的创建序列的语法结构:
CREATE SEQUENCE 序列名
[START WITH NUM] ---一般是从 1 开始
[INCREMENT BY increment] ---步长。一般 递增 1
[MAXVALUE NUM / NOMAXVALUE] ---最大值,一般是 28个9
[MINVALUE NUM / NOMINVALUE] ---最小值,一般是 1 (START WITH 后面的那个数)
[CYCLE / NOCYCLE] ---一般是 不循环
[CACHE NUM / NOCACHE] ---缓存,一般是20
----序列的用处:
1、用来生成整数值(可以用来作为某个列中的数据,也可以用来作为检查字段中的列)
---序列创建完之后怎么用:
1、序列名.NEXTVAL ----用的较多,每次生成一个新的往后增加 步长 位个数 (就可以用来生成一些数据)
2、序列名.CURRVAL ----查看序列当前走到哪一步(当前的数字是多少)
--比如:
SELECT SEQ_TEST1.NEXTVAL FROM DUAL; ---每次生成一个往后加1的数
SELECT SEQ_TEST1.CURRVAL FROM DUAL; ---查看当前序列走到了哪一个数
---需要注意的是:
1、序列号是不可更改,只能删除重建
2、序列创建好之后,无论是谁,无论是在哪儿用到了这个序列的 NEXTVAL,那么后续就会在这个基础上继续往前走
类似于:在教室拿课本(大家都是拿同一叠书)
3、序列名.NEXTVAL 会根据表里的行数,每一行都会往下加1
--比如:
SELECT E.*,SEQ_TEST1.NEXTVAL FROM EMP E;
4、序列创建之后,第一次是只能使用 序列名.NEXTVAL,不能查 序列名.CURRVAL,因为 序列号 还没生成
----删除序列
DROP SEQUENCE 序列名;
-----总结一下:
使用序列的步骤:
1、创建一个序列 / 或者使用原本存在的序列
2、使用 序列名.NEXTVAL 来构造不同的数据
序列名.CURRVAL 来构建相同的值的数据,或者查看当前序列走到了哪个数