SQL, EXIST, NOT

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를 정말 간단하고 쉽게 배웠습니다. 이 글을 읽고 조금 이해가 되셨나요? 수정이 필요한 부분이나 설명에서 빠진 부분이 있다면 댓글로 알려주시면 추가 및 수정하겠습니다. 그리고 궁금하신 사항은 댓글 남겨주시면 답변해드리겠습니다.