티스토리 뷰
Sequence - 시퀀스 생성(CREATE SEQUENCE)
시퀀스(Sequence)
- 자동으로 고유한 번호를 생성해주는 번호 생성기같은 Object
- 자동으로 번호를 변환
- 겹쳐지는 번호 지정 없다. → 제약 조건 위배
- ex) 회사 사원(부서) 마지막 번호가 기억 안날 때 → 일일이 검색하거나 기억하지 않아도 된다.
문법
1 2 3 4 5 6 7 | CREATE SEQUENCE sequence [ INCREMENT BY n ] [ START WITH n ] [ { MAXVALUE n | NOMAXVALUE } ] [ { MINVALUE n | NOMINVALUE } ] [ { CYCLE | NOCYCLE } ] [ { CACHE n | NOCACHE } ]; | cs |
순서 정해져 있지않다. → 없다
Object명 지을 때는 문자로 시작
문자, 숫자, 특수문자( _ # $ ) 혼합 가능
30Byte 넘으면 안 됨
같은 유저끼리는 이름 겹치면 안됨
INCREMENT
- 시퀀스 번호 사이의 간격 지정
- DEFAULT = 1
- 1씩 증가하는 것이 기본 / -1로 하면 1씩 감소
START
- 시퀀스 번호의 시작값 지정
- DEFAULT = 1
- START WITH 100 → 100번부터 시작
MAXVALUE
- MAXVALUE 1000 → 1000까지 증가
- 시스템에 정의되어 있는 최대값. 10의 27승
NOMAXVALUE
- 디폴트 값
MINVALUE
- MINVALUE 1000 → 1000까지 감소
- 시스템에 정의되어있는 최소값. -10의 26승
NOMINVALUE
- 디폴트 값
CYCLE
- 최대, 최소값에 도달한 경우 기본값부터 다시 시작한다
NOCYCLE
- 권장. 실수 안 할려고. PK, UK에 많이 쓰인다.
- 제약조건 위배하면 안 된다
- 순환하지 않는다
- 더 이상 값을 반환하지 않는다
CACHE
- 호출할 때마다 미리 만들어져있으니까 빨리 반환가능
- 다 써야지 캐시메모리에 새롭게 넣어놓는다
- 성능상 캐시가 좋다
- DEFAULT CACHE 20
- CACHE 5 : 5만큼의 캐시메모리에 시퀀스를 미리 할당하겠다
NOCACHE
- 캐시메모리 사용안함
- 시퀀스가 호출할 때마다 다음 값 만들어서 호출한다
1 | CREATE SEQUENCE id_seq; | cs |
가능하다
다 기본값을 적용하겠다는 뜻 → 기본적인 시퀀스
1 2 | SELECT MAX(department_id) FROM departments; | cs |
1 2 3 4 | CREATE SEQUENCE dept_id_seq INCREMENT BY 10 START WITH 330 MAXVALUE 9999; |
'부산 ITWILL 학원 실습 > ORACLE' 카테고리의 다른 글
[SQL 활용] 9. 데이터정의어(DDL) - Sequence - 시퀀스 수정 (0) | 2018.08.09 |
---|---|
[SQL 활용] 9. 데이터정의어(DDL) - Sequence - 시퀀스 사용 (0) | 2018.08.09 |
[SQL 활용] 9. 데이터정의어(DDL) - View - 뷰 삭제 (0) | 2018.08.09 |
[SQL 활용] 9. 데이터정의어(DDL) - View - 뷰 사용 (0) | 2018.08.09 |
[SQL 활용] 9. 데이터정의어(DDL) - View - 뷰 수정 (0) | 2018.08.09 |