본문 바로가기
Database

EXISTS와 IN의 차이_Oracle

by Lcoding 2023. 11. 7.
반응형

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

# 로딩 화면 동작 코드(Code) 설정하기
loading