SQLDSQL 기본DML난이도 2MCQ

SQLD DML 기출문제 #21

문제

다음 SQL 실행 후 DEPT 테이블의 총 행 수는? (Oracle)

[DEPT] DEPTNO: 10,20,30,40 / DNAME: A,B,C,D [EMP] DEPTNO: 10,10,20,20,30,NULL

SQL
DELETE FROM DEPT WHERE DEPTNO IN (SELECT DEPTNO FROM EMP WHERE DEPTNO IS NOT NULL); SELECT COUNT(*) FROM DEPT;

① 0 ② 1 ③ 2 ④ 4

정답

2

해설

서브쿼리 'SELECT DEPTNO FROM EMP WHERE DEPTNO IS NOT NULL'의 결과는 10,10,20,20,30입니다. 중복 제거되어 IN 조건은 (10,20,30)이 되고, DEPT 테이블에서 DEPTNO가 10,20,30인 행들이 삭제됩니다. 따라서 DEPTNO=40인 행만 남아서 COUNT(*)=1입니다. ①은 모든 행이 삭제된다고 잘못 판단, ②는 정답, ③은 2개 행이 남는다고 잘못 계산, ④는 삭제가 일어나지 않는다고 잘못 판단한 것입니다.

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

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

[SQLD] DML SQL 기본 기출 #21 | sqldpass