<Database> SEQUENCE

이제내손을java...·2024년 3월 28일

Database 개념정리

목록 보기
11/11

오늘은 Database의 SEQUENCE의 개념을 정리 해보겠습니다! DATABASE공부도 어느덧 거의 끝나가네요 🔥🔥🔥 앞으로도 화이팅😊

SEQUENCE

순차적으로 정수 값을 자동으로 생성하는 객체로 자동 번호 발생기 역할을 한다.

✓ 표현식

CREATE SEQUENCE 시퀀스명

① [START WITH 숫자]
🡪 처음 발생시킬 시작 값, 기본값 1
② [INCREMENT BY 숫자]
🡪 다음 값에 대한 증가치, 기본값 1
③ [MAXVALUE 숫자 | NOMAXVALUE]
🡪 발생시킬최대값, 10의 27승-1까지 가능
④ [MINVALUE 숫자 | NOMINVALUE]
🡪 발생시킬 최소값, -10의 26승
⑤ [CYCLE | NOCYCLE]
🡪 시퀀스가 최대값까지 증가 완료 시
CYCLE은START WITH설정값으로돌아감
NOCYCLE은 에러 발생
⑥ [CACHE | NOCACHE]
🡪 CACHE는 메모리 상에서 시퀀스 값 관리
기본값 20

SEQUENCE 예시

**CREATE SEQUENCE** SEQ_EMPID
**START WITH** 300
**INCREMENT** BY 5
**MAXVALUE** 310
**NOCYCLE**
**NOCACHE**;
SELECT SEQ_EMPID.CURRVAL FROM DUAL;
SELECT SEQ_EMPID.NEXTVAL FROM DUAL;
SELECT SEQ_EMPID.CURRVAL FROM DUAL;
SELECT SEQ_EMPID.NEXTVAL FROM DUAL;
SELECT SEQ_EMPID.NEXTVAL FROM DUAL;
SELECT SEQ_EMPID.NEXTVAL FROM DUAL;

SELECT * FROM USER_SEQUENCES;

NEXTVAL/CURRVAL 사용 가능 여부

사용가능🆗
서브쿼리가 아닌 SELECT문
INSERT문의 SELECT절
INSERT문의 VALUE절
UPDATE문의 SET절

사용불가✖️
VIEW의 SELECT절
DISTINCT 키워드가 있는 SELECT문
GROUP BY, HAVING, ORDER BY 절이 있는 SELECT문
SELECT, DELETE, UPDATE의 서브쿼리
CREATE TABLE, ALTER TABLE 명령의 DEFAULT값

시퀀스 수정 시 CREATE에 사용한 옵션을 변경 가능

단 START WITH 값 변경은 불가하기 때문에 변경하려면 삭제 후 다시 생성한다.

✓ 표현식

ALTER SEQUENCE SEQ_EMPID
INCREMENT BY 10
MAXVALUE 400
NOCYCLE
NOCACHE;

이상으로 SEQUENCE의 개념정리를 마치겠습니다 ! 화이팅 !

0개의 댓글