본문 바로가기
oracle/[SQL] SQL

12장. SEQUENCE(시퀀스) / SYNONYM(동의어)

by #moonyz 2014. 10. 14.

SEQUNCE (시퀀스)


- 많은 양의 데이터들에게 순서가 필요할 경우를 위해서 연속적인 번호를 자동으로 만들어주는 기능

- 마치 은행의 번호표처럼 연속적인 일련번호를 만들어주는 기능


<시퀀스 문법>


# 예제




(1) 시퀀스 생성 및 옵션 확인

step0. seq_jumun_no 시퀀스 생성 --위 예제에서 생성했던 시퀀스


step1. jumun  테이블 생성


step2. 시퀀스 활용하여 데이터 입력

- 시퀀스이름.함수

- NEXTVAL : 현재 값의 다음값을 가져오라는 뜻

- CURRVAL : 현재 시퀀스에서 발생한 마지막 값 조회


step3. MAXVALUE 값 만큼 데이터 입력


step4. 1010번까지 시퀀스 소진 후 데이터 입력 (cycle일경우 새로입력되는 값 minvalue 테스트)

- cycle 옵션 설정시 minvalue에 입력된 값으로 새로 시작되어 시퀀스 입력됨

- nocycle 옵션(default) 설정시 maxvalue 값을 초과하면 에러발생

- 서버 비정상 종료시 캐싱 되어 있던 값 다음값으로 시퀀스 입력



(2) 값이 감소하는 시퀀스 생성 및 사용

step1. 시퀀스 생성

- 시작값 5, 감소값 -1, 최소값 0


step2. 테이블 생성 및 데이터 입력

- 시작값 5부터 최소값 0까지 총6개의 데이터를 insert


- minvalue 시퀀스 값 소진후 데이터 추가 입력시 오류 



(3) 시퀀스 초기화

- 시퀀스를 초기화하는 경우는 드물지만 업무상 필요한 경우도 있음.

- 시퀀스 초기화는 프로시저를 생성하여 수행

step1. 시퀀스 초기화 프로시저 생성


step2. 테스트용 시퀀스 생성 및 시퀀스 추출


step3. 시퀀스 초기화 프로시저 실행




(4) 시퀀스 조회 및 수정

- USER_SEQUENCES : 시퀀스 정보 조회


- 시퀀스 수정 alter sequence 

- start with 값은 수정 불가



(5) 시퀀스 삭제

- 시퀀스를 사용하는 DML이 롤백되어도 시퀀스는 롤백되지 않기때문에 번호차이가 생길수 있음




SYNONYM (동의어)


- 테이블이름 대신에 테이블에게 별명을 만들어서 부르는 기능

- 보안상 목적, 사용자의 편의성

- synonym도 스키마 오브젝트이므로 만든사람만 사용가능

- 다른 사용자도 사용하게 하려면 public 키워드 사용해야함

- synonym을 생성하려면 CREATE SYNONYM 권한 필요


(1) SYNONYM 생성

- 권한 주기


- synonym 생성



(2) SYNONYM 조회



(3) SYNONYM 삭제


'oracle > [SQL] SQL' 카테고리의 다른 글

13장. 계층형 쿼리 (Hierarchical Query)  (0) 2014.10.14
11장. Sub Query (서브쿼리)  (0) 2014.10.13
10장. VIEW  (1) 2014.10.07
9장. 인덱스(Index)  (1) 2014.10.07
8장. 제약조건  (0) 2014.10.06

댓글