다음 PROD, CATEGORY 테이블에 대해 아래 SQL을 실행했을 때 조회되는 행의 수로 옳은 것은?
보기
CATEGORY 테이블 (CAT_NAME이 '단종'인 행은 존재하지 않음)
| CAT_ID | CAT_NAME |
|---|---|
| 10 | 가전 |
| 20 | 가구 |
| 30 | 식품 |
PROD 테이블
| PROD_ID | PROD_NAME | CAT_ID |
|---|---|---|
| P1 | 냉장고 | 10 |
| P2 | 소파 | 20 |
| P3 | 라면 | 30 |
| P4 | 샘플상품 | (NULL) |
| P5 | 사은품 | (NULL) |
SELECT *
FROM PROD
WHERE CAT_ID = (SELECT CAT_ID FROM CATEGORY WHERE CAT_NAME = '단종');
- 15건, 비교 대상이 없어 WHERE 조건이 무시되므로 전체 행이 반환된다
- 2실행되지 않음, 단일행 서브쿼리가 행을 반환하지 않아 오류가 발생한다
- 30건, 서브쿼리 결과가 공집합(NULL)이어서 = 비교가 항상 UNKNOWN이 된다
- 42건, 서브쿼리 결과가 NULL이므로 CAT_ID가 NULL인 P4, P5가 반환된다
꿈라CBT