문제
다음 SQL문에서 사용된 서브쿼리 실행 방식으로 가장 옳은 것은?
SELECT 상품명, 가격 FROM 상품 WHERE 가격 > (SELECT AVG(가격) FROM 상품 WHERE 카테고리 = '전자제품');
① 외부 쿼리의 각 행마다 서브쿼리가 반복 실행된다 ② 서브쿼리가 먼저 한 번 실행되고 그 결과로 외부 쿼리가 실행된다 ③ 외부 쿼리와 서브쿼리가 동시에 실행된다 ④ 서브쿼리 결과가 임시 테이블로 생성되어 조인된다
정답
2번
해설
②번이 정답이다. 이는 비상관 서브쿼리(Non-correlated Subquery)로, 외부 쿼리의 컬럼을 참조하지 않으므로 서브쿼리가 먼저 한 번만 실행되어 단일 값을 반환하고, 그 결과를 이용해 외부 쿼리가 실행된다. ①번은 상관 서브쿼리의 특징이고, ③번과 ④번은 일반적인 서브쿼리 처리 방식이 아니다.