시퀀스는 연속적인 숫자 값을 자동으로 증가시키는 숫자를 발생시키는 객체입니다. 시퀀스를 이용하면 기본 키의 값을 자동으로 생성할 수 있기 때문에 훨씬 간편해집니다.
시퀀스를 생성할 때 아래와 같은 옵션을 줄 수 있습니다.
시퀀스 옵션 |
설명 |
INCREMENT BY 숫자 |
연속적인 시퀀스 번호의 증가치를 지정합니다. |
START WITH 숫자 |
시퀀스 번호의 시작 값을 지정합니다. |
MAXVALUE 숫자 |
시퀀스가 가질 수 있는 최댓값을 지정합니다. |
MINVALUE 숫자 |
시퀀스가 가질 수 있는 최솟값을 지정합니다. |
CYCLE | NOCYCLE |
시퀀스 값이 최댓값을 넘으면 START WITH로 지정한 시작 값을 돌아가서 시퀀스를 반복합니다. |
CACHE 숫시 | NOCACHE |
메모리 상에서 시퀀스 값을 관리합니다. |
시퀀스 생성
CREATE SEQUENCE 시퀀스명
[INCREMENT BY 숫자]
[START WITH 숫자]
[MAXVALUE 숫자]
[MINVALUE 숫자]
[CYCLE | NOCYCLE]
[CACHE | NOCACHE]
대괄호 친 부분은 옵션이기 때문에 작성하지 않아도 되지만 기본값이 들어갑니다.
예시
CREATE SEQUENCE seq
INCREMENT BY 1
START WITH 1
MINVALUE 1
MAXVALEU 1000
NOCYCLE
NOCACHE;
위 시퀀스는 1부터 시작해 1씩 증가하여 최솟값 1부터 최댓값 1000까지 순번을 자동 생성합니다.
시퀀스의 현재 값을 알아내기 위해서 CURRVAL를 사용하고, 다음 값을 알아내기 위해서는 NEXTVAL을 사용합니다.
시퀀스 객체로부터 현재 값 알아내기
SELECT seq.CURRVAL FROM dual;
시퀀스의 현재 값인 1을 조회합니다.
시퀀스 객체로부터 새로운 값 생성하기
SELECT seq.NEXTVAL FROM dual;
시퀀스의 다음 값인 2를 조회합니다.
생성한 시퀀스를 삭제하는 명령입니다.
기본 사용법
DROP SEQUENCE 시퀀스명;
[SQL] 인덱스를 사용하여 쿼리 성능 향상시키기 (1) | 2020.10.28 |
---|---|
[SQL] PRIMARY KEY, FOREIGN KEY 데이터 무결성을 위한 제약 조건 (0) | 2020.10.13 |
[SQL] JOIN문 정리(LEFT JOIN, RIGHT JOIN, INNER JOIN, CROSS JOIN) (0) | 2020.10.06 |
[SQL] 뷰(View)의 개념과 뷰 사용하기 (1) | 2020.10.04 |
[SQL] PL/SQL 변수 선언과 대입 (0) | 2020.10.03 |