시퀀스란? 테이블 내의 유일한 숫자를 자동으로 생성
create sequence 시퀀스명
[start with 시작숫자]
[increment by 증감숫자]
[maxvalue 최대값 | nomaxvalue]
[minvalue 최소값 | nominvalue]
[cycle | nocycle]
[cache 시퀀스값 | nocache]
currval : 현재 값
nextval : 다음 값
사용순서 : nextval 👉 currval
why? 다음 값을 생성해야 그 값을 currval에 대체하므로
select 시퀀스명.nextval from dual;
select 시퀀스명.currval from dual; --daul 사용시 출력값 한 개
alter sequence 시퀀스명
[increment by 증감숫자]
[maxvalue 최대값 | nomaxvalue]
[minvalue 최소값 | nominvalue]
[cycle | nocycle]
[cache 시퀀스값 | nocache]
drop sequence 시퀀스명;
검색 속도를 향상시키기 위해 사용
사용자의 필요에 의해 직접 생성하거나 ,
데이터 무결성을 확인하기 위해 기본 키와 유일 키는 자동 생성된다
너무 많은 인덱스는 DB 성능에 좋지 않음
select index_name, table_name, column_name
from user_ind_columns
where table_name in ('EMPLOYEE', 'DEPARTMENT');
create index 인덱스명
on 테이블명(컬럼명);
drop index 인덱스명;
인덱스가 생성된 후 새로운 행의 추가, 삭제, 수정될 수 있고 인덱스로 사용된 컬럼 값이 변경될 수 있다. 이럴 경우 해당 작업들이 일어날 때 인덱스도 재생성해야 한다.
alter index 인덱스명 rebuild;
1. 유일한 값을 갖는지에 따라 고유 / 비 고유 인덱스
2. 인덱스를 구성하는 컬럼 개수에 따라 단일 / 결합 인덱스
3. 함수에 인덱스를 저장하는 함수 기반 인덱스
고유 인덱스
: 유일한 값을 갖는 컬럼에 대해 생성하는 인덱스 (기본키, 유일키)
비 고유 인덱스
: 중복된 데이터를 갖는 컬럼에 대해 생성하는 인덱스
👉 인덱스를 생성하며 unique
옵션을 추가하면 고유 인덱스가 생성,
생략하면 비고유 인덱스가 생성된다.
create unique index 인덱스명
on 테이블명(컬럼명);
단일 인덱스
: 한 개의 컬럼으로 구성한 인덱스
결합 인덱스
: 두 개 이상의 컬럼으로 구성한 인덱스
create index 인덱스명
on 테이블명(컬럼1, 컬럼2);
: 수식이나 함수를 적용하여 만든 인덱스
create index 인덱스명
on 테이블명(컬럼*12);