본문 바로가기
Oracle/Index, Sequence, Synonym

데이터 베이스_ 오라클 [Sequence] 개요

by Super Santj 2019. 7. 3.

본 게시글의 주제

시컨스 (Sequence) 는 특정필드에 연결 시켜서 데이터를 입력할때 자동으로 지정한 번호를 넣어주는 역할을 하는 오라클 객체, 약간 rownum(화면에 출력할때 레코드 앞에 번호를 부여, 순서 구분을 하기위해) 과 비슷하다. 중복이 안되는 필드에 사용하며, 즉 primary key에 해당하는 필드에 사용한다. 시퀀스를 사용하면 자동적으로 번호를 부여해준다.

우선 이론적으로 이해하기보다 직접 해보는것이 가장 빠른 이해를 도울수가 있다.

우선 우리의 데이터 자료중 dept는 deptno 10,20,30,40번으로 구성이 되어있다. 새로운 데이터를 입력할때 10단위로 증가하는것이 보기가 좋다. 중간에 갑자기 1,2,3 이런 식으로 값을 넣어준다면 약간 어색할수가있으며, 중복이 되지않고, 유일한 값을 부여하기위해 Sequence를 사용하는것이다.

형식_

시퀀스 Sequence 는 다소 복잡한 형식으로 사진을 참고 하면 보다 보기가 좋다.

시작을 create 로 시작하기에, 해당 구문은 DDL 문이다.

CREATE SEQUENCE sequence_name (시컨스 이름 => 테이블명_필드명)

[START WITH n] ①               => 시작번호를 n 위치에 지정한다. [] 대괄호는 써도되고 안써도된다 하지만 보기좋게하기위해 사용하는것을 권장한다.

[INCREMENT BY n] ②          => 증가치를 n 위치에 지정한다.

[{MAXVALUE n | NOMAXVALUE}] ③     => 최대값 | NOMAXVALUE 라는 뜻은 무제한 을 뜻한다

[{MINVALUE n | NOMINVALUE}] ④    => 최소값 | NOMINVALUE 최소값 설정

[{CYCLE | NOCYCLE}] ⑤     => 순환유무(최대값 도달시 다시 원점부터 시작하겠는가를 설정하는 부분)

[{CACHE n | NOCACHE}] ⑥      => 메모리 저장 유무

가장 간단한 방법은

ex) create sequence sequence_name; 이라 선언하여도 실행이 되지만

이렇게 만들면 무조건 처음 나오는 번호가 1,2,3,4,5,,, 이렇게 부여가 된다.

사용자가 설정하고싶은 옵션까지 설정을 하면 딱 거기까지 시퀀스가 부여가된다. 1) 까지만 해도되고 4) 까지만 해도되고 아무 상관없다.

댓글