728x90
반응형
SMALL
시퀀스
- 자동으로 유일한 번호 생성
- 공유 가능한 객체
- 주로 기본키에 저장될 값을 만드는데 사용
- 애플리케이션 코드 대체
- 메모리에 캐쉬되면 시퀀스 값을 사용하는 효율성 향상시킴.
1. 시퀀스 생성
CREATE SEQUENCE sequence_name
[START WITH n]
[INCREMENT by n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]
create sequence depts_seq
start with 91
increment by 1
maxvalue 100
nocycle
nocache;
2. 시퀀스 확인
- USER_SEQUENCES 데이터 사전 뷰에서 시퀀스 값을 검사
- LAST_NUMBER 열은 다음 이용 가능한 시퀀스 번호 출력
select sequence_name, min_value, max_value, increment_by, last_number
from user_sequences;
3. NEXTVAL과 CURRVAL
- NEXTVAL은 다음 사용 가느한 시퀀스 값을 반환
- 시퀀스가 참조될 때마다 사용자에게 유일한 값을 반환
- CURRVAL이 현재 시퀀스 값 반환
- CURRVAL이 참조되기 전에 NEXTVAL 이 먼저 이용되어야 함
4. 시퀀스 사용
insert into depts(deptno, dname, loc)
values (depts_seq.NEXTVAL, 'MARKETING', 'SAN DIEGO');
select * from depts;
select depts_seq.currval
from dual;
5. 시퀀스 수정
ALTER SEQUENCE sequence_name
[INCREMENT by n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]
alter sequence depts_seq
maxvalue 99999;
6. 시퀀스 삭제
- DROP SEQUENCE 문장을 사용하여 데이터 사전에서 시퀀스 제거
- 한 번 제거되었다면 시퀀스는 더는 참조될 수 없음.
drop sequence sequence_name;
인덱스
- 인덱스는 테이블이나 클러스터에서 쓰이는 선택적인 객체
- DB 테이블에서 원하는 레코드를 빨리 찾아갈 수 있음
1. 인덱스 생성
- 자동 : 유일인덱스는 테이블 정의 primary key 또는 unique 제약조건 정의 시 자동 생성
- 수동 : 사용자는 행에 대한 엑세스 시간을 줄이기 위해 열에서 유일하지 않은 인덱스 생성 가능
CREATE [UNIQUE | BITMAP] INDEX index_name
ON table_name(col1, col2);
create index emps_first_name_idx
on emps(first_name);
2. 인덱스 삭제
DROP INDEX emps_first_name_idx;
동의어
- 객체를 위한 대체 이름 제공
CREATE [PUBLIC] SYNONYM [schema.]synonym
FOR [schema.]object;
728x90
반응형
LIST
'IT > SQL' 카테고리의 다른 글
[SQL] 12. 뷰(View) (0) | 2023.05.16 |
---|---|
[SQL] 11. 제약조건(Constraints) (0) | 2023.05.15 |
[SQL] 10. 테이블 생성과 관리 (0) | 2023.05.15 |
[SQL] 9. 트랜잭션(Transaction) (0) | 2023.05.15 |
[SQL] 8. 데이터 조작(DML) (0) | 2023.05.15 |