[SQL] SEQUENCE 란?

SungminPark·2023년 12월 5일

SQL

목록 보기
3/5
post-thumbnail

SEQUENCE

시퀀스(SEQUENCE) 란?


오라클 시퀀스란 유일한 값을 생성해 주는 오라클 객체이다.

기본키와 같이 순차적으로 증가 하는 컬럼을 자동적으로 생성할 수 있으며, 주로 PRIMARY KEY값을 생성하기 위해 사용한다.

시퀀스는 테이블과는 독립적으로 저장, 생성되며 메모리에 Cache되었을 때 시퀀스 값의 액세스 효율이 증가한다

시퀀스 생성


CREATE SEQUENCE sequence_name

    [START WITH n]

    [INCREMENT BY n]

    [MAXVALUE n | NOMAXVALUE]

    [MINVALUE n | NOMINVALUE]

    [CYCLE | NOCYCLE]

    [CACHE | NOCACHE]

    [ORDER | NOORDER]
  1. START WITH : 시퀀스의 시작 값을 지정한다. n을 1로 지정하면 1부터 순차적으로 시퀀스 번호가 증가한다.
  2. INCREMENT BY : 시퀀스의 증가 값을 지정한다. n을 2로 지정하면 2씩 증가한다.
  3. MAXVALUE : 시퀀스 최대값
  4. MINVALUE : 시퀀스 최소값
  5. CYCLE | NOCYCLE : 최대값 도달시 순환 여부
  6. CACHE | NOCACHE : 메모리에 시퀀스 값을 미리 할당할지 여부
  7. ORDER | NOORDER : 반드시 순차적으로 모두 채워서 시퀀스를 사용하거나 건너뛸 수 있을지 여부

시퀀스 수정


ALTER SEQUENCE sequence_name

    [INCREMENT BY n]

    [MAXVALUE n | NOMAXVALUE]

    [MINVALUE n | NOMINVALUE]

    [CYCLE | NOCYCLE]

    [CACHE | NOCACHE]

    [ORDER | NOORDER]

시퀀스가 사용되는 경우


  • SELECT문의 SELECT 절 (단, SUBQUERY, VIEW가 아닌)
  • INSERT 문의 SELECT 절
  • INSERT 문의 VALUES 절
  • UPDATE문의 SET 절

시퀀스가 제한되는 경우


  • SELECT, DELETE, UPDATE 에서의 서브쿼리
  • VIEW의 QUERY구문
  • DISTINCT 가 있는 SELECT 문
  • GROUP BY, ORDER BY 가 있는 SELECT 문
  • SET 연산자(UNION, INTERSECT, MINUS)가 있는 SELECT 문
  • SELECT 문의 WHERE절
  • CREATE / ALTER TABLE 에서 컬럼의 DEFAULT 값
  • CHECK 제약조건
profile
개발자 준비 중 입니다

0개의 댓글