본문으로 바로가기

View(뷰) / Sequence(시퀀스) / SYNONYM(동의어)

category ORACLE 2019. 11. 15. 15:43

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