반응형
Oracle
EXISTS와 IN의 차이
1.
EXISTS : 특정 조건에 해당하는 로우의 존재유무만 체크한다, SELECT절을 실행하지 않기에 IN에 비해 성능이 좋다.
IN : 특정 조건에 해당하는 로우의 칼럼을 비교하여 체크한다, SELECT절을 실행 후 조회한 컬럼 값을 기준으로 비교하므로 EXISTS에 비해 성능이 떨어진다.
2.
- EXISTS : 메인 쿼리의 결과값을 서브쿼리에 대입하여 조건 비교후 결과 출력. 메인쿼리->EXISTS쿼리
- IN : 서브쿼리의 결과값을 메인 쿼리에 대입하여 조건 비교 후 결과 출력. IN쿼리->메인쿼리
3.
- NOT IN과 NOT EXISTS의 null 값에 대한 처리
-NOT EXISTS : NULL 데이터에 대해 TRUE를 리턴.
-NOT IN : NULL 데이터에 대해 FALSE를 리턴. [ NULL 처리를 하지 않을 경우 누락 발생]
반응형
'Database' 카테고리의 다른 글
JOIN할때 ON과 WHERE 중 어디에 조건을 줘야 효과적일까? _Oracle (0) | 2023.11.08 |
---|---|
ORA-04031 in Oracle Error (0) | 2023.11.08 |
Oracle Comment 설정 (0) | 2023.11.07 |
Oracle 기본 - 2 (0) | 2022.02.18 |
Oracle 기본 (0) | 2022.02.16 |