데이터베이스]SEQUENCE(시퀀스)란 무엇인가?
프로그램/ORACLE / 2016. 11. 30. 09:45
시퀀스의 정의와 사용 방법에 대해 정리해보려 한다.
개발을 할때 자동으로 키(KEY) 생성을 해야 할 경우 주로 사용한다.?
시퀀스(Sequence)란?
- - 유일(UNIQUE)한 값을 생성해주는 오라클 객체이다.
- - 시퀀스를 생성하면 기본키와 같이 순차적으로 증가하는 컬럼을 자동적으로 생성 할 수 있다.
- - 보통 PRIMARY KEY 값을 생성하기 위해 사용 한다.
- - 메모리에 Cache되었을 때 SEQUENCE 값의 액세스 효율이 증가 한다.
- - SEQUENCE는 테이블과는 독립적으로 저장되고 생성됩니다. 따라서 하나의 SEQUENCE를 여러 테이블에서 쓸 수 있다.
시퀀스 문법
- - START WITH : 시퀀스의 시작 값을 지정한다. n을 1로 지정하면 1부터 순차적으로 시퀀스번호가 증가 한다.
- - INCREMENT BY : 시퀀스의 증가 값을. n을 2로 하면 2씩 증가한다. START WITH를 1로 하고 INCREMENT BY를 2으로 하면 1, 3, 5,7,.. 이렇게 시퀀스 번호가 증가한다.
시퀀스 예제
-- 시퀀스 생성 SQL> CREATE SEQUENCE emp_seq START WITH 1 INCREMENT BY 1 MAXVALUE 100000 ; -- NEXTVAL을 사용하여 시퀀스 값을 자동으로 입력할 수 있다. SQL> INSERT INTO emp(empno, ename, hiredate ) VALUES(emp_seq.NEXTVAL, 'julia' , sysdate); -- NEXTVAL은 현재 시퀀스 값의 다음 값을 반환 한다. SQL> SELECT emp_seq.NEXTVAL FROM DUAL ; -- CURRVAL은 현재 시퀀스 값을 반환 한다. SQL> SELECT emp_seq.CURRVAL FROM DUAL ;
시퀀스의 수정 및 삭제
START WITH는 수정 할 수 없다. START WITH 절이 없다는 점을 빼고는 CREATE SEQUENCE 문장과 같다.
시퀀스의 수정 및 삭제 예제
-- 2씩 증가하고, 최대값을 넘으면 다시 처음부터 순환하도록 수정 SQL> ALTER SEQUENCE emp_seq INCREMENT BY 2 CYCLE; -- 시퀀스 삭제 SQL>DROP SEQUENCE emp_seq;
'프로그램 > ORACLE' 카테고리의 다른 글
Linux 기반의 Oracle10g 설치 (0) | 2016.11.30 |
---|---|
Backup & Recovery (0) | 2016.11.30 |
with grant option & with admin option 차이 (0) | 2016.11.30 |
view에 사용되는 with check option (0) | 2016.11.30 |
오라클 함수 정리 (0) | 2016.11.30 |