문제
다음과 같은 STUDENT(SNUM, SNAME, YEAR, DEPT) 테이블에서 아래 <쿼리 결과>와 같은 내용을 얻기 위한 쿼리문으로 가장 알맞은 것은?
| SNUM | SNAME | YEAR | DEPT |
|---|---|---|---|
| 101 | 김보라 | 4 | 컴퓨터 |
| 202 | 이세운 | 3 | 건축 |
| 303 | 전혜빈 | 1 | 컴퓨터 |
| 404 | 지유미 | 4 | 컴퓨터 |
| 505 | 문희준 | 2 | 건축 |
<쿼리 결과>
| SNUM | SNAME |
|---|---|
| 101 | 김보라 |
| 404 | 지유미 |
① SELECT SNUM, SNAME FROM STUDENT WHERE DEPT = "컴퓨터" OR YEAR = 4 ② SELECT SNUM, SNAME AS 4 FROM STUDENT GROUP BY SNO ③ SELECT SNUM, SNAME AS SNO FROM STUDENT GROUP BY SNAME ④ SELECT SNUM, SNAME FROM STUDENT WHERE DEPT = "컴퓨터" AND YEAR = 4
정답
4번
해설
정답: 4. 결과는 DEPT가 컴퓨터이면서 YEAR가 4인 행만 포함하므로 AND 조건을 사용해야 한다.
오답 풀이
- 1번: OR 조건은 컴퓨터 전공이거나 4학년인 행을 모두 포함하므로 결과 행 수가 더 많아진다.
- 2번: GROUP BY SNO가 테이블 필드와 맞지 않고 조건도 없다.
- 3번: 조건 없이 그룹화하므로 원하는 결과가 아니다.
- 4번: 컴퓨터 전공이면서 4학년인 학생만 조회한다.
보충 개념 WHERE 절에서 AND는 모든 조건을 만족하는 행만 선택한다.