SQLDSQL 기본난이도 3MCQ

SQLD SQL 기본 기출문제 #1172

문제

다음 SQL 실행 후 orders 테이블의 상태로 가장 적절한 것은?

SQL
-- 초기 데이터 CREATE TABLE orders (id INT, status VARCHAR(10), amount INT); INSERT INTO orders VALUES (1, 'PENDING', 1000); INSERT INTO orders VALUES (2, 'SHIPPED', 2000); INSERT INTO orders VALUES (3, 'PENDING', 1500); -- 실행 명령어 DELETE FROM orders WHERE status IN (SELECT DISTINCT status FROM orders WHERE amount > 1200);

① 모든 행이 삭제됨 (0건) ② id=1인 행만 남음 (1건) ③ id=2인 행만 남음 (1건) ④ id=1,2인 행이 남음 (2건)

정답

1

해설

서브쿼리 SELECT DISTINCT status FROM orders WHERE amount > 1200은 amount가 1200을 초과하는 행들(id=2: amount=2000, id=3: amount=1500)의 status인 'SHIPPED'과 'PENDING'을 반환합니다. DELETE 문은 status가 'SHIPPED' 또는 'PENDING'인 모든 행을 삭제하므로, id=1(PENDING), id=2(SHIPPED), id=3(PENDING) 모든 행이 삭제되어 테이블이 비게 됩니다.

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

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

[SQLD] SQL 기본 기출 #1172 | sqldpass