오라클 시퀀스(Sequence)

기록하는 용도·2022년 9월 6일
0

오라클 시퀀스(Sequence)

순차적으로 증가, 유일한 값을 생성하기 위한 객체
주로 primary key ( unique + not null ) 를 생성하기 위해 사용
테이블과는 독립적 구조

시퀀스 생성

CREATE SEQUENCE 시퀀스명
[START WITH 시작번호]
[INCREMENT BY 증가값]
[MAXVALUE 최대값] 
[MINVALUE 최소값]
[ CYCLE or NOCYCLE ] 
[ NOCACHE ] 

시퀀스는 캐시 메모리 영역을 갖고있다.

Oracle dual table

오라클에서 제공하는 기본 테이블로 컬럼이 하나만 존재하고 주로 시퀀스 또는 날짜함수, 산술연산에 사용한다.
sys Admin 계정에서 관리하고 수정 및 삭제 등 조작은 불가하다.

예제

  1. 듀얼 테이블
select * from dual; 


-- 듀얼 테이블은 간단한 산술 연산할 때 사용하고, 특별한 의미가 없다.

  1. 현재 시간 sysdate
select 2*5 from dual;

  1. 시퀀스 생성
create sequence test_seq; 
  1. nextval을 이용해 시퀀스 값을 발급, dual table을 이용
select test_seq.nextval from dual
  1. 시퀀스 삭제
drop sequence test_seq;
  1. 시퀀스 생성(start with 옵션을 이용)
create sequence test_seq start with 7;
  1. dual table을 이용, sequence test_seq 의 nextval을 확인
select test_seq.nextval from dual;
  1. 실제 테이블 이용
create table car(
	car_no number primary key,
	model varchar2(100) not null
)

8-1. car_no primary key의 정보를 sequence를 이용해 발급 받도록한다.

create sequence car_seq;

8-2. 자동차 정보를 생성 insert 한다.

insert into car(car_no, model) values(car_seq.nextval, '소나타');
insert into car(car_no, model) values(car_seq.nextval, 'sm6');
insert into car(car_no, model) values(car_seq.nextval, 'k5');

0개의 댓글