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 |
댓글