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를 정말 간단하고 쉽게 배웠습니다.

    이 글을 읽고 조금 이해가 되셨나요? 수정이 필요한 부분이나 설명에서 빠진 부분이 있다면 댓글로 알려주시면 추가 및 수정하겠습니다.

    그리고 궁금하신 사항은 댓글 남겨주시면 답변해드리겠습니다.