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 基礎——序列