문제
주문월이 '201001'인 데이터만 존재하는 테이블에서 다음 조건을 사용했을 때 결과로 가장 적절한 것은?
SQLSELECT * FROM 주문 WHERE 주문월 = '201010';
① NULL 1행이 반환된다. ② 0이 반환된다. ③ 공집합이 반환된다. ④ 오류가 발생한다.
정답
3번
해설
정답: 3. WHERE 조건을 만족하는 행이 없으면 SELECT 결과는 행이 없는 공집합이다.
오답 풀이
- 1번: 조건 불일치 시 NULL 행이 자동 생성되지 않는다.
- 2번: SELECT *는 COUNT가 아니므로 0이라는 값이 반환되지 않는다.
- 3번: 조건을 만족하는 행이 없으므로 공집합이다.
- 4번: 단순 비교 조건이므로 오류가 아니다.
보충 개념 SELECT * 조회에서 조건에 맞는 행이 없으면 결과 행이 없다. COUNT(*)를 사용하면 조건 만족 행 수인 0이 반환된다.