코린이의 기술 블로그
시퀀스(SEQUENCE), 인덱스(INDEX) 본문
오라클에서 사용하는 시퀀스는 유일한 (UNIQUE)한 값을 생성해주는 객체입니다
테이블 한개당 시퀀스는 한개인게 좋습니다:)
CREATE SEQUENCE name_seq
start with n //n은 지정된 값이고
increment by n //n은 순차적으로 증가하는 것이고
maxvalue n //최대값
minvalue n //최소값
cycle //최대값에서 다시 최소값으로 돌아가는 것
chahe n //메모리 유지 값
위의 식이 기본 값이며, 시퀀스 만들고 밑의 사진처럼 확인해보면 됩니다:)
CREATE SEQUENCE EMP_seq 를 생성하면

위에 테이블 밑에 시퀀스라는 곳을 보면 EMP_seq 라는 시퀀스가 생성 된것을 확인 할 수 있습니다
CURRVAL : 현재 값을 반환
NEXTVAL : 현재 시퀀스의 다음 값 반환
아래의 예시를 보면
INSERT INTO EMP01
VALUES(EMP_SEQ.NEXTVAL, 'JULIA',SYSDATE);
로 행을 삽입한 경우를 살펴 보겠습니다.

삽입 후 출력하였을 경우, 시퀀스의 다음값을 출력하는 것을 알 수 있습니다
시퀀스 값 증가되는 것을 출력에서 나타나집니다:)

SELECT EMP_SEQ.CURRVAL
FROM DUAL;
는 현재 값을 반환하는 예시로 볼 수 있습니다.
값이 0이 먼저 출력하는 값을 가지게 됩니다.

시퀀스의 수정은 ALTER SEQUENCE 사용 하면 값을 수정할 수 있습니다
ALTER SEQUENCE name_seq;
시퀀스 삭제는 DROP SEQUENCE 사용하면 값을 삭제할 수 있습니다
DROP SEQUENCE name_seq;
인덱스는 데이터를 행으로 저장하는 것이며, SELECT할때 명령어를 주지 않습니다
->검색 속도가 빠르며, 전체 성능을 향상 시켜줍니다
하지만, 추가 공간이 많이 필요하므로 오히려 저장측면에서는 성능이 저하됩니다:)
인덱스 생성 : CREATE UNIQUE INDEX
인덱스 삭제 : DROP INDEX index_name
null이 많으면 인덱스 칼럼을 만들기에는 적합하지 않습니다
이렇게 시퀀스와 인덱스를 알아 보았습니다:)

'DB의 늪' 카테고리의 다른 글
| PL/SQL 기본/IF문 (0) | 2021.10.05 |
|---|---|
| VIEW(뷰) (0) | 2021.10.04 |
| 데이터 베이스 기초 (0) | 2021.10.02 |
| UML : UPDATE문, DELETE문 (0) | 2021.09.30 |
| DML : INSERT 문 (0) | 2021.09.29 |