1. 程式人生 > >Oracle 基礎——序列

Oracle 基礎——序列

語句 下一個 權限 spa family class rop 最小 2-2

一、什麽是序列

  序列是用於生成唯一、連續序號的對象。序列可以是升序的,也可以是降序的,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 基礎——序列