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 |
댓글