서브쿼리의 종류
SELECT 서브쿼리 -> 스칼라 서브쿼리
FROM 서브쿼리 -> inline 서브쿼리
WHERE 서브쿼리 -> 중첩 서브쿼리
WHERE 중첩 서브쿼리 - 조인문으로도 만들 수 있다.
where 단일값일 경우에는 = 사용
다중값일 경우 IN 사용
SELECT 스칼라 서브쿼리
하나의 컬럼값을 받아서 하나의 컬럼값만 리턴하는 서브쿼리 - primary key 값으로 해야한다.
안전하게 하기위해서 열의 값을 하나로 설정해준다.
WHERE ROWNUM=1
캐싱기능
입력값과 출력값을 오라클에서 캐시로 저장해서 한번이상 쓸 경우 더 빠르게 불러온다.
FROM 인라인뷰 FROM절의 서브쿼리
VIEW -> object 생성 -> sql에서 불러다 쓴다.
FROM 인라인뷰 -> 일회성뷰로 object를 생성하지 않는다.
옵티마이저 실행계획에서 풀리는 경우가 있는데 다음과 같은 힌트를 주면 된다.
/*+NO_MERGE*/