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

+ Recent posts