DELETE, TRUNCATE, DROP의 차이

송기훈·2023년 7월 18일

오늘은 '삭제'라는 공통점을 가지고 있지만, 삭제의 범주와 대상이 서로 다른 세 가지 명령어인 DELETE, TRUNCATE, DROP에 대해서 알아보는 포스팅을 진행해 보겠습니다.

출처: https://wikidocs.net/4021

출처의 사진 1장이면 모든 것이 설명이 되지만 오늘은 조금 더 풀어서 설명을 해 보도록 하겠습니다.

✏️DELETE

  • SELECT, INSERT, UPDATE와 함께 DML(Data Manipulation Laguage, 데이터조작어) 중 하나입니다.
  • 테이블에서 튜플(행)을 삭제하는 역할을 하고 있습니다.
  • 원하는 데이터만 삭제를 할 수 있고 삭제 후 잘 못 삭제한 것을 되돌릴 수 있습니다.
  • 모든 레코드를 삭제하더라도 테이블의 구조는 남아 있기 때문에 디스크에서 테이블을 완전히 제거하는 DROP과는 차이점이 있습니다.

✏️TRUNCATE

  • DDL명령어 중 하나입니다.
  • 모든 튜플(행)을 삭제하는 역할을 하고 있습니다.
  • 행 전체 + 인덱스를 삭제합니다.
  • 조건절(WHERE)을 사용할 수 없습니다.
  • AUTO COMMIT이라 ROLLBACK이 불가능합니다.

✏️DROP

  • DDL명령어 중 하나입니다.
  • 데이터베이스에서 테이블을 제거하는 역할을 합니다.
  • 테이블의 튜플(행), 인덱스 및 권한도 제거합니다.
  • AUTO COMMIT이라 ROLLBACK이 불가능합니다.
profile
하루 하루 성장하는 코린이 블로그입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

정말 잘 읽었습니다, 고맙습니다!

답글 달기