본문 바로가기
SQL

DELETE, TRUNCATE, DROP의 차이

by KwonSoonBin 2023. 7. 27.

DELETE: 테이블에서 데이터를 삭제하는 명령어입니다. 하지만 DELETE는 테이블 내의 행(row)을 하나씩 삭제하는 작업이기 때문에 데이터를 삭제할 때마다 트랜잭션 로그를 생성하고, 롤백(rollback)이 가능해야 하므로 DELETE 작업은 비교적 느릴 수 있습니다. 또한, DELETE 작업은 특정 조건에 따라 원하는 행만을 삭제할 수 있습니다.

DELETE FROM table_name WHERE condition;

 

TRUNCATE : 테이블에서 데이터를 모두 삭제하는 명령어

삭제후 용량이 줄어들고 인덱스 등도 모두 삭제된다. 테이블이 삭제 되지는 않으나 데이터만 삭제한다. 선택해서 지울 수 없다. 삭제 후 절대 되돌릴 수 없다. DELETE와 달리 TRUNCATE는 테이블 자체를 비웁니다. 따라서 TRUNCATE는 트랜잭션 로그를 생성하지 않고, 롤백이 불가능하며, DELETE보다 빠른 속도로 데이터를 삭제할 수 있습니다.

TRUNCATE TABLE table_name;

 

DROP : 테이블 자체를 삭제하는 명령어입니다.

테이블 전체를 삭제, 공간, 객체를 삭제한다, 삭제 후 절대로 되돌릴 수 없다. 테이블이 삭제되면 해당 테이블과 관련된 모든 데이터, 인덱스, 제약 조건 등이 완전히 사라집니다. DROP은 DELETE나 TRUNCATE와는 달리 데이터를 삭제하지 않고, 테이블 자체를 삭제하는 것입니다.

DROP TABLE table_name;

 

요약

간단히 말하면

DELETE는 행 단위로 데이터를 삭제하는 작업

TRUNCATE는 테이블을 비워서 데이터를 한 번에 삭제하는 작업

DROP은 테이블 자체를 삭제하는 작업

'SQL' 카테고리의 다른 글

(SQL) Hard Delete , Soft Delete  (0) 2023.07.27
SQL기초  (0) 2023.07.27

댓글