문제
다음 중 아래 <회원> 테이블에 대한 SQL과 그 실행 결과로 옳지 않은 것은? (단, 빈 칸은 Null이다.)
| 회원번호 | 이름 | 연락처 |
|---|---|---|
| 1 | 가람 | 010-1234 |
| 2 | 나래 | |
| 3 | 다온 | 010-5678 |
| 4 | 라온 | 010-9012 |
① SELECT COUNT() FROM 회원; 의 결과는 4이다. ② SELECT COUNT(연락처) FROM 회원; 의 결과는 4이다. ③ SELECT COUNT(이름) FROM 회원; 의 결과는 4이다. ④ SELECT COUNT() FROM 회원 WHERE 연락처 Is Null; 의 결과는 1이다.
정답
2번
해설
정답: 2. COUNT(연락처)는 연락처가 Null인 레코드를 제외하고 세므로, 연락처가 비어 있는 '나래'를 빼면 3이다. 결과가 4라는 설명은 옳지 않다.
오답 풀이
- 1번: COUNT(*)는 모든 행을 세므로 4가 맞다.
- 2번: COUNT(연락처)는 Null을 제외해 3이어야 하므로 결과 4는 옳지 않다.
- 3번: 이름은 모두 값이 있으므로 COUNT(이름)은 4가 맞다.
- 4번: 연락처가 Null인 행은 1개이므로 4번은 맞다.
보충 개념 COUNT(*)는 Null을 포함한 전체 행 수를, COUNT(필드)는 그 필드가 Null이 아닌 행 수를 센다.