다음 SQL을 실행한 결과로 옳은 것은?[도서]도서번호분류가격1IT18… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 1회
다음 SQL을 실행한 결과로 옳은 것은?[도서]
| 도서번호 | 분류 | 가격 |
|---|---|---|
| 1 | IT | 18000 |
| 2 | 경제 | 25000 |
| 3 | IT | 32000 |
| 4 | 경제 | 15000 |
| 5 | 소설 | 27000 |
| 6 | IT | 9000 |
| 7 | 경제 | 20000 |
SELECT 도서번호 FROM 도서 WHERE 분류 = 'IT' OR 분류 = '경제' AND 가격 >= 20000 ORDER BY 도서번호;
1
| 도서번호 |
|---|
| 1 |
| 2 |
| 3 |
| 6 |
2
| 도서번호 |
|---|
| 1 |
| 2 |
| 3 |
| 6 |
| 7 |
3
| 도서번호 |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 6 |
| 7 |
4
| 도서번호 |
|---|
| 2 |
| 3 |
| 7 |
해설
AND가 OR보다 먼저 평가되므로 조건은 분류 = 'IT' OR (분류 = '경제' AND 가격 >= 20000)으로 해석된다.
IT 도서 1·3·6은 가격과 무관하게 모두 나오고, 경제 도서는 가격이 20000 이상인 2·7만 남아 도서번호 1, 2, 3, 6, 7이 조회된다.
- 2, 3, 7만 남은 표는 OR를 먼저 묶은 (IT OR 경제) AND 가격 조건의 결과이다.
- 7이 빠진 표는 경계값 20000을 포함하는 >=를 놓쳤다.
- 4까지 나온 표는 가격 조건을 아예 무시한 결과이다.
오류나 개정된 내용이 보이면 알려주세요