일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- JOIN
- oracle
- db
- 동적계획법
- 반복문
- DP
- 변수
- algoritm
- Java
- 소숫점처리
- Algorithm
- 문자열
- 데이터길이
- 2156
- Dynamic Programming
- 그대로 출력하기
- 데이터베이스
- Eclipse
- 알고리즘
- 자바
- darkest dark
- Database
- select
- 백준
- 오라클
- 입출력
- SQL
- 10951
- n x 2 타일링 2
- ANSI JOIN
Archives
- Today
- Total
Cracking Code
SQL - SEQUENCE (시퀀스) 본문
테이블에 데이터를 삽입할 때 기본키는 보통 숫자로 합니다.
숫자의 증감을 알아서 계산해주어 편리한 데이터 삽입이 가능하게 하는 시퀀스에 대해 알아봅시다.
CREATE SEQUENCE sequence
[INCREMENT BY n]
[START WITH n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
시퀀스는 자동으로 숫자의 증감을 수행합니다.
INCREMENT BY 절로 n 만큼 증감을 정하고 START WITH 절은 시작할 숫자 n을 정합니다.
MAXVALUE 절은 n이 증가될 수 있는 최대의 숫자를 정하며 MINVALUE 절로 n까지 감소할 수 있는 숫자를 정합니다.
CYCLE 절을 이용하여 최대 또는 최소에 도달하였을 때 최소 또는 최대부터 다시 증감을 시작할 것인가 결정합니다.
숫자 1부터 1만큼 최대 9999 까지만 증가하고 도달하면 끝나는 시퀀스를 만들어 봅시다.
CREATE SEQUENCE EMP_SEQ
INCREMENT BY 1
START WITH 100
MAXVALUE 9999
NOCYCLE;
시퀀스가 생성되었습니다.
이제 시퀀스를 사용해봅시다.
시퀀스 사용은 NEXTVAL과 CURRVAL로 사용할 수 있습니다.
sequence.NEXTVAL;
sequence.CURRVAL;
NEXTVAL은 지정된 시퀀스에서 순차적인 시퀀스 번호를 추출하며
CURRVAL은 방금 추출한 시퀀스 번호를 참조할 때 사용합니다.
🚨단, NEXTVAL을 수행한 후 번호를 추출할 때 사용해야 합니다.
시퀀스가 잘 동작하는지 확인해보겠습니다.
SELECT EMP_SEQ.NEXTVAL, EMP_SEQ.CURRVAL
FROM DUAL;
100부터 시작하여 1씩 증가하는 모습을 볼 수 있습니다.
이제 시퀀스를 변경하는 방법을 알아보겠습니다.
ALTER SEQUENCE sequence
[INCREMENT BY n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
시퀀스를 만들 때와 같지만 CREATE만 ALTER로 바꾸면 됩니다.
EMP_SEQ 시퀀스의 MAXVALUE 옵션은 8000으로 바꿔봅시다.
ALTER SEQUENCE EMP_SEQ
MAXVALUE 8000;
EMP_SEQ의 MAX_VALUE 가 8000으로 변경된 것을 확인할 수 있습니다.
시퀀스의 삭제는 테이블 또는 뷰를 삭제할 때와 같습니다.
DROP SEQUENCE sequence_name;
'Database' 카테고리의 다른 글
SQL - CREATE, ALTER, DROP USER (0) | 2020.07.23 |
---|---|
SQL - INDEX (0) | 2020.07.23 |
SQL - VIEW (뷰) (0) | 2020.07.22 |
SQL - ALTER TABLE (0) | 2020.07.22 |
SQL - DROP TABLE (0) | 2020.07.21 |
Comments