SQL - 문제 미리보기

문제 1689

medium
다음 쿼리에서 빈칸에 들어갈 올바른 구문은? ```sql SELECT SupplierName FROM Suppliers WHERE ______ (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.SupplierID); ```
A. `IN`
B. `EXISTS`
C. `JOIN`
D. `HAVING`

정답: B

쿼리의 목적과 구조를 분석하여 정답을 도출: 쿼리 목적 분석: • Suppliers 테이블에서 공급업체명(SupplierName) 조회 • 조건: 해당 공급업체가 제공하는 상품이 존재하는 경우만 서브쿼리 구조: • Products 테이블에서 관련 상품 검색 • `Products.SupplierID = Suppliers.SupplierID`로 연결 • 특정 공급업체의 상품이 존재하는지만 확인하면 됨 EXISTS가 정답인 이유: 1. 존재 여부 확인: 상품이 있는지만 확인하고 실제 값은 불필요 2. 상관 서브쿼리: 외부 쿼리의 각 공급업체별로 서브쿼리 실행 3. 성능 효율성: 첫 번째 일치하는 상품을 찾으면 즉시 TRUE 반환 다른 선택지 검토: • IN: 특정 값들과 일치하는지 확인하는 용도 (값 비교) • JOIN: 테이블 결합 용도 (구문 위치 부적절) • HAVING: 그룹화 후 조건 적용 (GROUP BY 없음)

💡 학습 팁

이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.