문제
다음 중 쿼리의 [디자인 보기]에서 아래와 같이 설정한 경우 동일한 결과를 표시하는 SQL 문은?
| 필드 | 모집인원 | 지역 |
|---|---|---|
| 테이블 | Table1 | Table1 |
| 업데이트 | 2000 | |
| 조건 | "서울" | |
| 또는 | >1000 |
① UPDATE Table1 SET 모집인원 > 1000 WHERE 지역="서울" AND 모집인원=2000; ② UPDATE Table1 SET 모집인원 = 2000 WHERE 지역="서울" AND 모집인원>1000; ③ UPDATE Table1 SET 모집인원 > 1000 WHERE 지역="서울" OR 모집인원=2000; ④ UPDATE Table1 SET 모집인원 = 2000 WHERE 지역="서울" OR 모집인원>1000;
정답
4번
해설
정답: 4. 업데이트 행에 '모집인원=2000'이 지정되어 SET 모집인원 = 2000이 된다. 조건은 같은 행에 있으면 AND, 다른 행('조건'과 '또는')에 있으면 OR로 결합되는데, 지역="서울"(조건 행)과 모집인원>1000(또는 행)이 서로 다른 줄에 있으므로 OR로 묶여 WHERE 지역="서울" OR 모집인원>1000이 된다.
오답 풀이
- 1번: SET 절은 '='로 대입해야 하는데 '>'를 써서 잘못이고 조건 결합도 틀리다.
- 2번: 조건을 AND로 묶어 같은 행 조건으로 해석했으나 실제로는 OR이므로 옳지 않다.
- 3번: SET에 '>'를 쓴 점과 OR 조건의 대상이 잘못되어 옳지 않다.
- 4번: SET 모집인원=2000, WHERE 지역="서울" OR 모집인원>1000으로 디자인과 일치하므로 옳다.
보충 개념 쿼리 디자인 격자에서 같은 '조건' 행의 조건들은 AND로, '조건'과 '또는' 등 다른 행에 걸친 조건들은 OR로 결합된다.