DELETE, TRUNCATE, DROP의 차이?

YOBY·2023년 9월 14일
0

DELETE

*특정 테이블에서 행(row)을 삭제합니다.

특징

트랜잭션 내에서 롤백 가능 - DELETE 명령은 트랜잭션 내에서 실행되며, 롤백을 통해 이전 상태로 복구 가능합니다.

조건에 따른 선택 삭제 - WHERE 절을 사용하여 특정 조건을 만족하는 행만을 삭제할 수 있습니다.

성능 부하 - 큰 테이블에서 모든 행을 삭제할 때는 성능이 저하될 수 있습니다.


TRUNCATE

*특정 테이블의 모든 데이터를 한 번에 삭제합니다.

특징

테이블 구조는 유지 - 테이블 구조는 그대로 유지되며, 테이블 자체는 비워집니다.

테이블에 대한 권한 소유 - 트랙잭션이나 롤백과 상관없이 실행 가능한 권한을 가진 사용자만 사용할 수 있습니다.

속도가 빠름 - DELETE보다 빠르게 동작합니다.


DROP

*테이블, 뷰, 인덱스 등의 객체를 완전히 삭제합니다.

특징

테이블 구조와 데이터 모두 삭제 - 테이블 자체를 삭제하므로, 테이블 구조와 그 안의 데이터가 모두 사라집니다.

복구 불가능 - DROP 명령을 실행하면 삭제한 객체를 복구할 수 없습니다.


간단히 말해서, DELETE는 특정 조건에 맞는 행을 삭제하고, TRUNCATE는 테이블의 모든 데이터를 삭제하며, DROP은 테이블 자체를 삭제합니다.

0개의 댓글