시퀀스(Sequence)
시퀀스란 연속적인 숫자를 생성해내는 객체이다.
DB에서 테이블의 기본키가 숫자형 데이터일 경우, 이 테이블에 기본키인 컬럼에 시퀀스를 설정해 놓을 경우
테이블에 데이터를 삽입(Insert) 할때마다, 자동으로 각 로우를 식별할 수 있는 시퀀스값이 할당되어 저장된다.
이때, 시퀀스값은 보통 자동으로 +1씩 늘어나게 설정해 놓고 사용한다.
그러면, 데이터가 삽입될때마다 1부터 차례대로 번호가 부여되게 된다.
Ex) CUSTOMER 테이블 시퀀스 예시
CUST_SEQ | CUST_NAME | CUST_PHONE | CUST_ADDR |
1 | 홍길동 | 010-0000-0000 | 서울 |
2 | 이순신 | 010-1111-1111 | 부산 |
3 | 장보고 | 010-2222-2222 | 경주 |
해당 예시에서 CUST_SEQ컬럼이 시퀀스가 설정된 컬럼이다.
데이터가 삽입될때마다 1부터 시작하여 차례대로 1씩증가하여 입력되게 된다.
다음 입력될 데이터의 시퀀스 번호는 4가 되게 된다.
시퀀스 사용방법
위에 예시로 사용한 CUSTOMER테이블을 기준으로 시퀀스의 생성, 사용, 삭제에 대해 정리해보겠습니다.
※ 시퀀스 생성
1
2
3
4
5
6
7
8
|
CREATE SEQUENCE CUSTOMER_SEQ -- 시퀀스명
MINVALUE 1 -- 최소값
MAXVALUE 99999 -- 최대값
INCREMENT BY 1 -- 증감값(1씩증가)
START WITH 1 -- 시작값
NOCACHE
NOORDER
NOCYCLE;
|
cs |
위와같은 명령문으로 시퀀스를 생성할 수 있다.
각각 옵션값을 지정하여 상황에 맞게 시퀀스를 생성하여 사용하면 됩니다.
※시퀀스 사용
시퀀스를 사용할때는 NEXTVAL을 이용하여 시퀀스를 생성할 수 있다.
1
2
3
|
INSERT INTO CUSTOMER(CUST_SEQ, CUST_NAME, CUST_PHONE, CUST_ADDR) VALUES(CUSTOMER_SEQ.NEXTVAL, '홍길동', '010-0000-0000', '서울');
INSERT INTO CUSTOMER(CUST_SEQ, CUST_NAME, CUST_PHONE, CUST_ADDR) VALUES(CUSTOMER_SEQ.NEXTVAL, '이순신', '010-1111-1111', '부산');
INSERT INTO CUSTOMER(CUST_SEQ, CUST_NAME, CUST_PHONE, CUST_ADDR) VALUES(CUSTOMER_SEQ.NEXTVAL, '장보고', '010-2222-2222', '경주');
|
cs |
예시를 참고해보면 CUSTOMER_SEQ.NEXTVAL을 이용하여 시퀀스값을 생성해서, CUST_SEQ컬럼에 입력해주고 있다.
위와같이 명령문을 실행하면 1부터 차례대로 시퀀스가 부여되어 입력되게 된다.
실행결과로 위와같이 1부터 3까지 차례대로 시퀀스값이 부여된것을 확인할 수 있다.
※ 시퀀스 삭제
시퀀스의 삭제는 간단하다 DROP문을 이용하여 삭제하게 됩니다.
1
|
DROP SEQUENCE CUSTOMER_SEQ;
|
cs |
위와같이 DROP SEQUENCE "시퀀스명"; 을 이용하여 시퀀스를 삭제해주면 됩니다.
위와같이 시퀀스의 생성, 사용, 삭제방법에 대해 알아보았습니다.
이번 포스팅은 이만 마치겠습니다.
'노빠꾸 데이터베이스 > ORACLE' 카테고리의 다른 글
[Mac OS] 맥북 도커(Docker) 오라클 샘플스키마 설치 (0) | 2021.05.15 |
---|---|
[Oracle] 오라클 사용자 생성(계정 생성), 권한부여 (0) | 2020.11.01 |