티스토리 뷰
1. CREATE SEQUENCE - 역할
테이블에서 일련의 순번을 순차적으로 편하게 입력하고자 할 때 사용
◈ 구문형식
CREATE SEQUENCE 스퀀스 이름 START WITH 시작번호
INCREMENT BY 증가값
2. CREATE SEQUENCE - 설명
◈ 시퀀스 사용 이유
예를 들어서 테이블을 만들고 NUM이라는 컬럼을 PRIMARY KEY로 지정을 했습니다.
이 테이블에 데이터를 입력할 때 NUM은 맨 마지막 NUM에 1을 더한 값으로 입력을 해줍니다.
즉,MAX(NUM)+1을 해주는 것을 매번 INSERT 할 때마다 해주게 되는데 이렇게 하면 INSERT 문장을 쓸 때도 복잡해지고 질의도 부하가 생길 수 있습니다.
이 때를 위해서 사용하는 것이 시퀀스 입니다.
3. CREATE SEQUENCE - SQL 문장
1 2 3 | CREATE SEQUENCE TEST_SEQ START WITH 10 INCREMENT BY 10; |
지금처럼 TEST_SEQ를 만들었습니다.
시작하는 번호는 10이고 10씩 증가하게 하였습니다.
즉, 첫번째 데이터가 입력될 때는 10이 입력이 되고 두번째 데이터부터 10씩 증가해서 20,30,40..... 이렇게 증가하게 됩니다.
4. SEQUENCE 적용 - SQL 문장
1 2 3 | INSERT INTO TEST_TABLE_ONE(NUM,NAME,ID) VALUES(TEST_SEQ.NEXTVAL,'테스트','test'); COMMIT; |
이 시퀀스를 적용할 때는 만들어진 시퀀스 이름 TEST_SEQ를 입력하고 뒤에 점을 찍어주고 NEXTVAL이라고 해주면 시퀀스에서는 자동으로 다음 번호를 입력해 주게 됩니다.
이렇게 이용을 하게 되면 테이터 삽입시 MAX를 구해서 더하기 한 것보다 질의 부하도 줄어들도 쿼리를 사용할 때도 좀 더 편하게 이용할 수 있습니다.
'[개발]프로그래밍 > sql' 카테고리의 다른 글
[oracle] PL/SQL - PROCEDURE 생성 (0) | 2019.12.05 |
---|---|
[oracle] CREATE VIEW - 뷰 생성 (0) | 2019.12.03 |
[oracle] DROP TABLE - 테이블 삭제 (0) | 2019.12.02 |
[oracle] RENAME TABLE - 테이블 이름 변경 (0) | 2019.11.29 |
[oracle] CREATE TABLE AS SELECT - 테이블 복사 (0) | 2019.11.26 |
- Total
- Today
- Yesterday