데이터베이스
26일차//[Oracle] index
aesup
2021. 2. 17. 20:14
728x90
/*
index : 색인
원하는 정보의 위치를 빠르고 정확하게 알아 낼 수 있는 방법
-자동생성 : Primary Key, Unique
-수동생성 : Query
생성시 주의 사항
1. where 절이나 join 안에 자주 사용되는 컬럼
2. null 값이 많이 포함되어 있는 컬럼
3. where 절이나 join안에 두개 이상을 사용하는 컬럼
비효율적인 경우
1. 테이블의 DATA (ROW)가 적을 때(3000개이하)
2. 테이블이 자주 갱신
*/
CREATE TABLE EMP_COPY
AS
SELECT
*
FROM employees;
--자동생성
ALTER TABLE EMP_COPY
ADD
CONSTRAINT PK_EMPCOPY_01 PRIMARY KEY(employee_id); --테이블복사하면 제약조건까지 오는건아님
--pk설정하면 인덱스 자동적으로 따라온다
-- index 확인--오류---------------------------
SELECT
*
FROM ALL_INDEXES
WHERE index_name IN ('PK_EMPCOPY_01');
--수동생성
CREATE INDEX EMP_INDEX
ON
EMP_COPY(MANAGER_ID);
DROP TABLE EMP_COPY
CASCADE CONSTRAINTS;
SELECT first_name, RANK()OVER(ORDER BY salary DESC);
FROM employees
ORDER BY salary DESC;
SELECT RNUM, employee_id, first_name, salary
FROM
(SELECT ROWNUM AS RNUM, employee_id, first_name, salary
FROM
( SELECT employee_id, first_name, salary
FROM employees
ORDER BY salary DESC)
)
WHERE RNUM > 0 AND RNUM <=10;
728x90