SQL, POSTGRESQL, ORACLE, QUERY, 쿼리, 조건, DBEVER
다음은 EXISTS 및 NOT EXISTS를 사용하는 쉬운 방법입니다.
SQL을 사용할 때 서로 다른 조건과 원하는 결과에서 서로 다른 결과를 도출해야 합니다.
무언가를 포함하거나 포함하지 않는 결과를 표시해야 하는 경우, 이번에 설명할 EXIST와 NOT EXIST를 올바르게 사용하면 원하는 결과를 도출할 수 있습니다.
나는 할 수 있다고 생각합니다.
아직 배우는 단계지만 개념과 함께 사용법을 적어보도록 하겠습니다.
색인
존재한다, 존재하지 않는다
존재하다
간단히 말해서 “기본 테이블과 하위 테이블을 비교하여 EXIST EXIST 조건이 포함되어 있음을 보여라!
” 그렇게 생각하시면 이해가 조금 더 쉬울 것 같아요.
존재하는 방법
SELECT (조회필드명)
FROM (테이블명)
WHERE (조건)
AND EXISTS (SELECT 1 FROM (테이블명) WHERE (조건))
EXISTS로 사용된 부분을 보면 SELECT 1이라고 되어있는데 사실 SELECT절은 불필요하므로 쓸데없는 1을 삽입한다고 합니다.
존재하지 않는다
위의 EXISTS의 반대 개념보다 “NOT EXISTS에 내가 쓴 조건이 존재하지 않으면 결과를 출력하라!
”라고 생각하시면 이해가 조금 더 쉽습니다.
NOT EXISTS 사용 방법
SELECT (조회필드명)
FROM (테이블명)
WHERE (조건)
AND NOT EXISTS (SELECT 1 FROM (테이블명) WHERE (조건))
요약
여기서 질문이 있습니다.
즉, IN을 사용해도 같은 결과를 얻을 수 있습니다.
그러나 문제가 있습니다.
느리기 때문에 EXISTS와 JOIN을 사용하는 것이 좋습니다.
JOIN을 사용하면 EXISTS를 사용하는 것보다 속도가 약간 빠르지만 중복 값이 많을 때는 EXISTS가 약간 더 빠릅니다.
끝
EXISTS와 NOT EXISTS를 정말 간단하고 쉽게 배웠습니다.
이 글을 읽고 조금 이해가 되셨나요? 수정이 필요한 부분이나 설명에서 빠진 부분이 있다면 댓글로 알려주시면 추가 및 수정하겠습니다.
그리고 궁금하신 사항은 댓글 남겨주시면 답변해드리겠습니다.