IN, EXISTS 차이

오민석·2021년 1월 19일
0

EXISTS : 조건에 해당하는 ROW의 존재 유무와 체크 후 더이상 수행하지 않음.

-> SELECT 절을 평가하지 않으므로 일반적으로 IN에 비해 성능이 좋다.

IN : 조건에 해당하는 ROW의 컬럼을 비교하여 체크한다.

-> SELECT 절에서 조회한 컬럼 값으로 비교하므로 EXISTS에 비해 성능이 떨어진다.

EXISTS : 메인 쿼리의 결과값을 서브 쿼리에 대입하여 조건 비교 후 결과를 출력한다. ( 메인쿼리 -> EXISTS 쿼리 )

IN : 서브 쿼리의 결과값을 메인 쿼리에 대입하여 조건 비교 후 결과를 출력한다. ( IN쿼리 -> 메인 쿼리 )

NOT IN과 NOT EXISTS의 NULL값에 대한 처리

NOT EXISTS : NULL 데이터에 대해 TRUE를 리턴한다.

NOT IN : NULL 데이터에 대해 FALSE를 리턴한다. NULL 처리를 하지 않을 경우 누락이 발생한다.

https://cafe.naver.com/sqlpd/7162

https://blog.naver.com/ujandgd/221688151311

https://blog.naver.com/madosa3000/221762665432

https://ikinox.tistory.com/entry/NOT-IN%EA%B3%BC-NOT-EXISTS%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

0개의 댓글