Oracle 基础——序列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 基础——序列相关的知识,希望对你有一定的参考价值。

一、什么是序列

  序列是用于生成唯一、连续序号的对象。序列可以是升序的,也可以是降序的,Oracle用户想创建序列必须有创建序列的角色权限。

二、创建序列的SQL语法

  创建序列:CREATE SEQUENCE SEQ_NAME START WITH n INCREMENT BY n2 MAXVALUE n3 MINVALUE n4 NOCYCLE(或者CYCLE) CACHE n5

  删除序列:DROP SEQUENCCE SEQ_NAME

  查看序列的当前值:SELECT SEQ_NAME.CURRVAL FROM DUAL(第一次查看序列中的值时候,只能使用NEXTVAL查看,不曾使用CURRVAL)

  查看序列的下一个值:SELECT SEQ_NAME.NEXTVAL FROM DUAL

  (1)SEQ_NAME:序列对象名

  (2)n:第一个开始的序号

  (3)n2:序号之间的间隔

  (4)n3:序号的最大值

  (5)n4:序号的最小值

  (6)n5:指定内存中预先分配的序号个数,从当前序号开始算起个数(Oracle11gR2中默认为20)

  (7)NOCYCLE:表示在达到最大值后停止生成下一个值

  (8)CYCLE:表示在达到最大值后继续循环从n开始生成序号

  (9)必须满足的条件:n>=n4,n<=n3,n3>=n4,n5<=(n3-n)

三、效果演示

  1、创建一个序列名SEQ_1开始值为1,最大值为5,并且依次递增1 NOCYCLE,SQL语句如下:

1 CREATE SEQUENCE SEQ_1 START WITH 1 INCREMENT BY 1 MAXVALUE 5 MINVALUE 1 NOCYCLE CACHE 10;

  如图1-1所示,成功创建序列SEQ_1,并且第一次查看序列中的值只能用NEXTVAL。如图1-2所示,当序列值达到最大值5时,停止生成下一个值

  技术分享图片

                        图 1-1

  技术分享图片

                         图 1-2

  2、创建一个序列名SEQ_2开始值为1,最大值为5,并且依次递增1 CYCLE,SQL语句如下: 

  

1 CREATE SEQUENCE SEQ_2 START WITH 1 INCREMENT BY 1 MAXVALUE 5 MINVALUE 1 CYCLE CACHE 4;

  如图2-1所示,成功创建序列SEQ_1,查看序列当前值用CURRVAL。如图2-2所示,当序列值达到最大值5时,循环生成开始值

  技术分享图片

                        图 2-1

  技术分享图片

                       图 2-2

  3、删除序列SEQ_1、SEQ_2,如图3-1所示

  技术分享图片

                      图 3-1

  

  明天又要上班了,呜呜呜呜呜。。。。

以上是关于Oracle 基础——序列的主要内容,如果未能解决你的问题,请参考以下文章

sql Oracle代码片段

如何在 Toad for Oracle 中使用自定义代码片段?

Oracle基础 12 对象 objects 同义词/序列/试图/索引

Oracle基础入门

oracle(sql)基础篇系列——数字字典索引序列三范式

Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段