문제
DELETE, TRUNCATE, DROP에 대한 설명으로 가장 적절하지 않은 것은?
① DELETE는 WHERE 절로 조건을 지정해 일부 행만 삭제할 수 있고, 행 단위로 작업이 기록되어 ROLLBACK으로 되돌릴 수 있다. ② TRUNCATE는 WHERE 절을 사용할 수 있어 특정 조건의 행만 빠르게 삭제할 수 있다. ③ DROP은 테이블의 데이터뿐 아니라 테이블 구조(정의) 자체를 삭제한다. ④ TRUNCATE와 DROP은 DDL로 분류되어 명령 수행 시 암시적 커밋(auto-commit)이 발생한다.
정답
2번
해설
TRUNCATE는 WHERE 절을 사용할 수 없으며 테이블의 모든 행을 한 번에 삭제한다. 일부 행만 조건으로 지우려면 DELETE를 써야 한다. ②가 잘못된 설명이다. ① DELETE는 DML이며 ROLLBACK 가능, ③ DROP은 구조까지 제거, ④ TRUNCATE/DROP은 DDL이라 실행 즉시 암시적 커밋이 일어난다 — 모두 옳다. 따라서 적절하지 않은 것은 ②.