SQLD관리 구문UPDATE난이도 4MCQ

SQLD UPDATE 기출문제 #3847

문제

아래 UPDATE 구문에 대한 설명으로 알맞은 것은?

SQL
UPDATE emp_test A SET salary = ( SELECT salary * 1.1 FROM emp_test B WHERE A.employee_id = B.employee_id AND B.department_id = 60 );

<조건> UPDATE 문에는 별도의 WHERE 절이 없다.

① DEPTNO가 10인 사원들의 월급을 10% 인상하는 쿼리이다. ② UPDATE ... WHERE DEPTNO = 10과 동일한 의미이다. ③ 오류가 발생한다. ④ department_id가 60이 아닌 모든 사원들의 salary가 NULL로 수정된다.

정답

4

해설

정답: 4. UPDATE 문 자체에 WHERE 절이 없으므로 모든 행이 갱신 대상이며, 상관 서브쿼리가 department_id=60 조건을 만족하지 않는 행은 NULL을 반환하여 salary가 NULL로 갱신될 수 있다.

오답 풀이

  • 1번: department_id=60 조건이며, 전체 UPDATE 대상 제한 조건이 아니다.
  • 2번: UPDATE 문에 WHERE가 없으므로 department_id=60 행만 갱신하는 것과 다르다.
  • 3번: 스칼라 서브쿼리 결과가 없으면 NULL로 처리될 수 있어 문법 오류는 아니다.
  • 4번: 조건에 맞지 않는 행의 salary가 NULL로 바뀔 수 있다.

보충 개념 UPDATE의 SET 절에 서브쿼리를 사용할 때는 UPDATE 대상 행을 제한하는 WHERE 절을 별도로 작성해야 한다. 그렇지 않으면 의도하지 않은 행까지 갱신될 수 있다.

SQLD 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] UPDATE 관리 구문 기출 #3847 | 문어CBT