시퀀스란?
- 유일(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;
참고>> http://oracleclub.com/lecture/1037
'Dev. 데이터베이스 > Oracle 관련' 카테고리의 다른 글
[오라클 SQL] 우편번호(주소) 대용량 데이터 sqlldr 이용하여 넣기(csv파일 이용) (0) | 2012.08.29 |
---|---|
[오라클 SQL 강좌] 시노님 (Synonym-동의어) (0) | 2012.08.28 |
데이터베이스 백업(Backup) 및 복구(Recovery) - 전체, 계정(스키마), 테이블 (0) | 2012.08.28 |
[오라클 SQL 강좌] 뷰 (View) (0) | 2012.08.28 |
[ORACLE 강좌] 오라클 함수 - 분석함수 ( Analytic Functions ) (0) | 2012.08.22 |