학습용 기출·복원자료 분류 확인SQLD · 2025년 58회 SQL 기본 및 활용 · 27번
EXISTS 연산자에 대한 설명으로 가장 적절한 것은?
1
서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.
정답 근거EXISTS는 서브쿼리 조건에 맞는 행을 최소 1건이라도 찾아도 즉시 TRUE를 반환하고 검색을 멈추므로 효율적이다. 이를 문항 조건에 적용하면 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’을 선택한다. 따라서 1번 보기 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
메인쿼리의 컬럼 값을 서브쿼리로 전달할 수 없다.
오답 이유‘메인쿼리의 컬럼 값을 서브쿼리로 전달할 수 없다.’은 이 문항에서 요구하는 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’의 정의·역할과 구분된다. EXISTS는 서브쿼리 조건에 맞는 행을 최소 1건이라도 찾아도 즉시 TRUE를 반환하고 검색을 멈추므로 효율적이다. 이를 문항 조건에 적용하면 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’을 선택한다. 따라서 2번 보기 ‘메인쿼리의 컬럼 값을 서브쿼리로 전달할 수 없다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
결과 집합에 NULL 값이 포함된 경우 무조건 에러를 발생시킨다.
오답 이유‘결과 집합에 NULL 값이 포함된 경우 무조건 에러를 발생시킨다.’ 구문은 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’과 실행 결과나 적용 조건이 다르다. EXISTS는 서브쿼리 조건에 맞는 행을 최소 1건이라도 찾아도 즉시 TRUE를 반환하고 검색을 멈추므로 효율적이다. 이를 문항 조건에 적용하면 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’을 선택한다. 따라서 3번 보기 ‘결과 집합에 NULL 값이 포함된 경우 무조건 에러를 발생시킨다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
성능상 항상 IN 연산자보다 불리하게 작동한다.
오답 이유‘성능상 항상 IN 연산자보다 불리하게 작동한다.’은 이 문항에서 요구하는 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’의 정의·역할과 구분된다. EXISTS는 서브쿼리 조건에 맞는 행을 최소 1건이라도 찾아도 즉시 TRUE를 반환하고 검색을 멈추므로 효율적이다. 이를 문항 조건에 적용하면 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’을 선택한다. 따라서 4번 보기 ‘성능상 항상 IN 연산자보다 불리하게 작동한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 1번
핵심 판단은 1번 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’입니다. EXISTS는 서브쿼리 조건에 맞는 행을 최소 1건이라도 찾아도 즉시 TRUE를 반환하고 검색을 멈추므로 효율적이다. 이를 문항 조건에 적용하면 ‘서브쿼리의 결과가 1건이라도 존재하면 TRUE를 반환하고 더 이상 검색하지 않는다.’을 선택한다.