학습용 기출·복원자료 분류 확인SQLD · 2024년 55회 SQL 기본 및 활용 · 43번
DELETE, TRUNCATE, DROP의 비교로 가장 부적절한 것은?
1
DROP은 테이블 정의와 데이터를 삭제한다.
오답 이유DROP은 객체 자체를 제거하므로 정의와 데이터가 함께 사라진다. 따라서 1번 보기 ‘DROP은 테이블 정의와 데이터를 삭제한다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
TRUNCATE는 테이블을 빈 초기 상태로 만든다.
오답 이유TRUNCATE는 구조는 남기고 전체 행을 빠르게 제거한다. 따라서 2번 보기 ‘TRUNCATE는 테이블을 빈 초기 상태로 만든다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
DROP은 자동 커밋되고 DELETE와 TRUNCATE는 모두 사용자 COMMIT으로 확정된다.
정답 근거TRUNCATE와 DROP은 DDL이며 일반적으로 수행 시 암시적 커밋이 발생해 ROLLBACK할 수 없다. DELETE는 DML이라 COMMIT 전에는 ROLLBACK할 수 있다. 따라서 3번 보기 ‘DROP은 자동 커밋되고 DELETE와 TRUNCATE는 모두 사용자 COMMIT으로 확정된다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
TRUNCATE는 일반 DELETE보다 적은 UNDO로 빠르게 전체 행을 제거한다.
오답 이유행별 삭제가 아니라 세그먼트 단위로 처리해 대량 전체 삭제에서 보통 빠르다. 따라서 4번 보기 ‘TRUNCATE는 일반 DELETE보다 적은 UNDO로 빠르게 전체 행을 제거한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘DROP은 자동 커밋되고 DELETE와 TRUNCATE는 모두 사용자 COMMIT으로 확정된다.’입니다. TRUNCATE와 DROP은 DDL이며 일반적으로 수행 시 암시적 커밋이 발생해 ROLLBACK할 수 없다. DELETE는 DML이라 COMMIT 전에는 ROLLBACK할 수 있다.