서론 : 오라클의 시퀀스를 간단히 표현하면 일련번호를 부여하는 설정이다.
오라클에서는 자동 증가 칼럼을 사용할 수 없기 때문에 별도로 설정해주어야 하는 것이 시퀀스 설정인데요. 다른 데이터베이스와 달리 오라클에서는 시퀀스를 설정해서 일련번호를 부여하는 방법을 씁니다. 자동으로 숫자를 증가시키기 위해서 간단한 명령어가 필요할 텐데요. 이때 사용하는 것이 바로 시퀀스입니다.

본론
1. 시퀀스 설정하는 방법
시퀀스는 간단히 아래와 같이 작성할 수 있습니다. 시퀀스명을 먼저 생성해 주고, start를 작성해 주는 데, 만일 아무런 숫자도 지정하지 않으면 자동으로 정수 1로 부여가 됩니다. 그리고 INCREMENT BY을 작성해 줍니다. 만일 본인이 최솟값과 최댓값을 설정하고 싶다면 최솟값을 설정하고 최댓값을 설정하는 명령어도 함께 작성해 줍니다.
create sequence 시퀀스명
start with
INCREMENT BY [증감숫자]
NOMINVALUE OR MINVALUE [최솟값]
NOMAXVALUE OR MAXVALUE [최대값]
NOCYCLE [최대값이 도달하면 다시 시작값으로 반복하라는 구문]
NOORDER [요청 순서대로 값을 생성할지 여부]
2. 시퀀스 설정의 예제
위의 내용만 알고 있다면 시퀀스 설정을 혼자서도 충분히 가능할 텐데요. 하나의 예제로 만들어보도록 하겠습니다.
CREAT TABLE Book (
bookid number primary key,
bookname varchar2(40),
publisher varchar2(40),
price number
);
저는 옛날 회사 면접 때 평소 읽는 책이 무엇이냐고 물어보았기에 정의란 무엇인가의 책을 넣어보도록 하겠습니다. 출판사 이름까지 찾아보기 귀찮으니 그냥 n출판사로 작성해 보고요, 아래와 같이 값을 넣도록 할게요.
insert into Book (bookid, bookname, publisher, price)
values(book_seq.nextval,'정의란 무엇인가','n출판사',25000);
이렇게 넣었을 때 seq(스퀀시)를 작성한 후 nextval라는 것이 보이죠? nextval이라는 것은 호출할수록 1씩 증가한다는 의미인데요. 연속된 값을 새로 만들어주는 거죠. nextval을 한 번이라도 수행하지 않으면 Currval을 가져올 수 없다고 합니다.
NEXTVAL의 MAXVALUE의 값이 넘으면 오류가 발생합니다.
결론
중요 용어 정리
create sequence 시퀀스명
start with
-- 시작숫자 시작수를 정하지 않으면기본 1
INCREMENT BY [증감숫자]
NOMINVALUE OR MINVALUE [최솟값]
-- NOMINVALUE : 디폴트값 설정, 증가일때 1, 감소일때 -10^28
-- MINVALUE : 최소값 설정, 시작숫자와 작거나 같아야하고 MAXVALUE보다 작아야함
-- NOMAXVALUE OR MAXVALUE [최대값]
-- NOMAXVALUE : 디폴트값 설정, 증가일때 10^27, 감소일때 -1
'Oracle' 카테고리의 다른 글
Oracle 글자 찾는 함수 LENGTH, INSTR, LIRIM, RTRIM, TRIM (0) | 2023.11.10 |
---|---|
Oracle 비교 연산자와 LIKE, NOT LIKE (0) | 2023.11.10 |
Oracle 필수 개념 : 테이블, 따옴표, 컬럼 추가, 제약조건 (0) | 2023.11.09 |
댓글