시퀀스(Sequence)란?


시퀸스는 유일(UNIQUE)한 값을 생성해주는 오라클(데이터베이스) 객체이며

시퀸스를 생성하면 기본 키와 같이 순차적으로 증가하는 칼럼을 자동적으로 생성할 수 있게 된다

 

보통 PK값에 중복값을 방지하기위해 사용한다.

시퀀스를 사용하면 특별한 로직이 필요없이 데이터베이스에 ROW가 추가될때마다 자동으로 +1을 시켜주어 매우 편리하다.

 

 

시퀀스(Sequence) 생성


--문법
CREATE SEQUENCE [시퀀스명]
INCREMENT BY [증감숫자] --증감숫자가 양수면 증가 음수면 감소 디폴트는 1
START WITH [시작숫자] -- 시작숫자의 디폴트값은 증가일때 MINVALUE 감소일때 MAXVALUE
NOMINVALUE OR MINVALUE [최솟값] -- NOMINVALUE : 디폴트값 설정, 증가일때 1, 감소일때 -1028 
                               -- MINVALUE : 최소값 설정, 시작숫자와 작거나 같아야하고 MAXVALUE보다 작아야함
NOMAXVALUE OR MAXVALUE [최대값] -- NOMAXVALUE : 디폴트값 설정, 증가일때 1027, 감소일때 -1
                               -- MAXVALUE : 최대값 설정, 시작숫자와 같거나 커야하고 MINVALUE보다 커야함
CYCLE OR NOCYCLE --CYCLE 설정시 최대값에 도달하면 최소값부터 다시 시작 NOCYCLE 설정시 최대값 생성 시 시퀀스 생성중지
CACHE OR NOCACHE --CACHE 설정시 메모리에 시퀀스 값을 미리 할당하고 NOCACHE 설정시 시퀀스값을 메로리에 할당하지 않음
--예제
CREATE SEQUENCE EX_SEQ --시퀀스이름 EX_SEQ
INCREMENT BY 1 --증감숫자 1
START WITH 1 --시작숫자 1
MINVALUE 1 --최소값 1
MAXVALUE 1000 --최대값 1000
NOCYCLE --순한하지않음
CACHE; --메모리에 시퀀스값 미리할당

 CREATE SEQUENCE sequence_name 

  [START WITH n] ① 
  [INCREMENT BY n] ② 
  [{MAXVALUE n | NOMAXVALUE}] ③
  [{MINVALUE n | NOMINVALUE}] ④
  [{CYCLE | NOCYCLE}] ⑤
  [{CACHE n | NOCACHE}] ⑥
CREATE SEQUENCE sequence_name
[START WITH n] ①
[INCREMENT BY n] ②
[{MAXVALUE n | NOMAXVALUE}] ③
[{MINVALUE n | NOMINVALUE}] ④
[{CYCLE | NOCYCLE}] ⑤
[{CACHE n | NOCACHE}] ⑥
① START WITH 
시퀀스의 시작 값을 지정한다. n을 1로 지정하면 1부터 순차적으로 시퀀스 번호가 증가한다.

② INCREMENT BY 
시퀀스의 증가 값을 말한다. n을 2로 하면 2씩 증가한다. START WITH를 1로 하고 INCREMENT BY를 2
로 하면 1, 3, 5, 7로 시퀀스 번호가 증가하게 된다. 


'DB > SQL' 카테고리의 다른 글

PreparedStatement  (0) 2022.04.06
PL / SQL  (0) 2022.04.03
VIEW  (0) 2022.04.03
Sub Query  (0) 2022.04.03
JOIN  (0) 2022.04.03