본문 바로가기

Database

[SQL] SEQUENCE

SEQUENCE 개념

- 순차적 번호 자동 발생 역할을 하는 객체

- 주로 PK역할의 컬럼에 삽입되는 값을 만드는 용도(UNIQUE&NOT NULL)

- SEQUENCE 객체를 생성하여 호출하면 지정된 범위 내에서 일정한 간격으로 증가하는 숫자를 순차적으로 출력할 수 있어서 주민등록번호와 같은 인위적 주식별자역할이 필요할 때 사용

 

 

SEQUENCE 생성(CREATE)

SEQUENCE 생성

  [STRAT WITH 숫자]  : 처음 발생시킬 시작값 지정, 생략하면 자동 1
  [INCREMENT BY 숫자] : 다음 값에 대한 증가치, 생략하면 자동 1
  [MAXVALUE 숫자 | NOMAXVALUE] : 발생시킬 최대값 지정 (10의 27승 -1)  → MIN & MAX를 통한 범위 설정
  [MINVALUE 숫자 | NOMINVALUE] : 최소값 지정 (-10의 26승)
  [CYCLE | NOCYCLE]  : 값 순환 여부 지정, 기본값 NOCYCLE
  [CACHE 바이트크기 | NOCACHE] : 캐쉬메모리 기본값 20BYTE (최소값은 2BYTE)

* 캐시 메모리란
  할당된 크기만큼 미리 값들을 생성해 저장해두고, 시퀀스 호출 시 미리 저장된 값들을 가져와 반환하는 것
  → 매번 시퀀스를 생성해서 반환하는 것보다 DB속도가 향상

 

SEQUENCE 수정(ALTER)

SEQUENCE 수정

SEQUENCE 생성과 같은 옵션들을 사용하되,

START WITH 값은 제외하고 ALTER SEQUENCE 명령어로 수정 할 수 있다.

 

 

SEQUENCE 사용 방법 

    1) 시퀀스명.NEXTVAL : 다음 시퀀스 번호 출력 (INCREMENT BY만큼 증가된 값)
         
    2) 시퀀스명.CURRVAL : 현재 시퀀스 번호 출력 
       단, 시퀀스 생성 후 NEXTVAL 선 호출 없이 CURRVAL를 호출하면 오류가 발생한다.

       ( CURRVAL는 마지막 NEXTVAL 호출 값을 다시 보여주는 기능)

'Database' 카테고리의 다른 글

DB 모델링  (0) 2022.11.16
DB 구현 & SQL활용  (0) 2022.09.20
[SQL] VIEW  (1) 2022.09.17
[SQL] DML - SELECT구문  (0) 2022.09.04
[SQL] SQL(Structured Query Language)  (0) 2022.09.03