VIEW(뷰)
안배움
SEQUENCE(시퀀스)
- 호출될 때 마다 자동으로 유일한 숫자를 생성하는 오라클 객체
- 테이블의 특정 컬럼값을 넙버링(numbering)하기 위해 사용된다.
- 시퀀스 값을 얻기 위해서는 호출해줘야함
- 한번 넘어간 숫자는 되돌릴 수 없다.
- 시퀀스는 초기화 할 수 없고, 삭제 후 다시 만들어 줘야한다.
시퀀스 생성
CREATE SEQUENCE 시퀀스명
시퀀스 옵션;
시퀀스 생성 옵션
옵션명 | 설명 |
START WITH n | 시퀀스의 시작값을 지정할 때 사용된다. |
INCERMENT BY n | 연속적인 시퀀스 번호의 증가치를 지정할 때 사용 |
MAXVALUE n | NOMAXVALUE | 시퀀스가 가질 수 있는 최대값을 지정한다. |
MINVALUE n | NOMINALUE | 시퀀스가 가질 수 있는 최소값을 지정한다. |
CYCLE | NOCYCLE |
CYCLE : 지정된 시퀀스 값이 최대값 까지 증가 완료되면, MINVALUE 값 부터 다시 시작한다. NOCYCLE : 지정된 시퀀스 값이 최대값 까지 증가 완료되면, 에러발생 |
CACHE n | NOCACHE |
- 성능향상을 위해서 메모리 상의 시퀀스 값을 미리 만들어 필요시 바로 제공하는 방법 - 기본적으로 20개를 생성해서 관리한다. - 데이터 베이스를 종료하고 다시 사용할 경우에는 이전에 생성했던 시퀀스 값을 사용하지 못하게 되어 중간에 비어있는 넘버링이 될 수도 있다.
|
NEXTVAL / CURRVAL
- 시퀀스 값을 얻기 위해서는 반드시 시퀀스 객체를 호출해야함.
NEXTVAL
- 시퀀스에서 순차적인 시퀀스 값을 갖고옴.
- NEXTVAL 값을 호출할때마다 시퀀스 생성시 지정했던 옵션들에 의해서 다음 시퀀스 값이 결정되어 반환된다.
INSERT INTO 테이블명
*
VALUES(컬럼명 데이터타입 시퀀스명.NEXTVAL,....);
CURRVAL
- 현재 생성된 시퀀스값을 조회하기 위한 방법
- SELECT 시퀀스명.CURRVAL FROM 테이블명
시퀀스 데이터 사전
DESC USER_SEQUENCES
시퀀스 수정
- START WITH 옵션은 변경이 불가능하기 때문에 필요시 시퀀스를 삭제하고 재생성해야 된다.
ALTER SEQUENCE 시퀀스명
[INCREMENT BY n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE]
테이블에 시퀀스 값 저장
- 시퀀스는 테이블의 특정 컬럼값을 넘버링(numbering)하기 위한 용도로 사용되기 때문에 테이블에 데이터를 저장하는 INSERT문과 같이 사용된다.
INSERT INTO 테이블명
(컬럼명, ...)
VALUES(시퀀스명.NEXTVAL, 값, 값,...);
시퀀스 삭제
DROP SEQUENCE 시퀀스명
SYNONYM(동의어)
'ORACLE' 카테고리의 다른 글
SUBQUERY 서브쿼리 (0) | 2019.11.16 |
---|---|
조인 (0) | 2019.11.16 |
SQL 함수-그룹함수 / GROUP BY 절 / HAVING절 (0) | 2019.11.15 |
SQL함수 / 단일행 함수 (0) | 2019.11.15 |
DML / TCL (0) | 2019.11.15 |