SQL에서 TRUNCATE TABLE과 DELETE FROM의 차이점으로 올바른 것은?

보통 W3Schools
보기 및 정답
A TRUNCATE는 특정 행만 조건부로 삭제하고, DELETE는 테이블의 전체 행을 한 번에 일괄 삭제하는 DDL 명령이다
B TRUNCATE는 테이블의 모든 행을 빠르게 제거하고 WHERE 조건을 사용할 수 없으며, DELETE는 조건부 삭제가 가능하고 롤백할 수 있다
C DELETE는 WHERE 조건 없이 전체 삭제 시 TRUNCATE보다 항상 빠르며, 트랜잭션 로그를 기록하지 않는다
D TRUNCATE와 DELETE는 내부적으로 완전히 동일한 방식으로 동작하며, 실행 성능이나 트랜잭션 로그 처리 방식에 차이가 없는 것으로 알려져 있다

해설

TRUNCATE TABLE은 테이블의 모든 데이터를 한 번에 제거하며 자동 증가(AUTO_INCREMENT) 카운터도 초기화합니다. 행 단위 로그를 기록하지 않아 DELETE보다 빠르지만 WHERE 조건을 사용할 수 없고, 일부 DBMS에서는 롤백이 불가능합니다.

코딩, 제대로 배우고 싶다면?

개념 확인은 퀴즈로, 실력은 실전 프로젝트로.
투더제이 코딩클래스에서 시작하세요.

정규반 살펴보기
START THE LOOP · CHOOSE

시장과 사람의 답을 봤다면,
다음 결과물의 구조를 고릅니다.

한 번의 결과에 기대지 않고 다시 만들 수 있도록, 문제 발견부터 제작·배포·수익화까지 이어지는 전체 흐름을 익혀보세요.

TTJ CLASS에서 다음 구조 고르기
처리 중...