[DB] DELETE, TRUNCATE, DROP

·2025년 1월 8일

데이터베이스

목록 보기
13/22
post-thumbnail

DELETE, TRUNCATE, DROP 차이

DELETE

  • 테이블에서 특정 조건에 맞는 행(row)의 데이터를 삭제하는 명령어
  • 조건을 지정하지 않으면 모든 행 삭제 (내부적으로 한 행씩 삭제해서 느림)
  • Commit이전에는 Rollback이 가능함
  • 데이터가 저장된 공간은 반환되지 않음
  • DML(Data Manipulation Language)언어
-- 특정 조건에 맞는 행 삭제
DELETE FROM 테이블명 WHERE 컬럼명 = '값';

-- 모든 행 삭제
DELETE FROM 테이블명;

TRUNCATE

  • 테이블의 모든 데이터를 삭제하고 AUTO_INCREMENT 값도 초기화
  • 데이터가 저장된 공간은 반환
  • Rollback 불가
  • DELETE 보다 빠름
  • DDL(Data Definition Language)언어
-- 테이블의 모든 데이터 삭제
TRUNCATE TABLE 테이블명;

DROP

  • 테이블, 뷰, 데이터베이스 등의 구조와 데이터를 완전히 삭제하는 명령어
  • Rollback 불가
  • 테이블과 관련된 인덱스, 제약 조건(Foreign Key), 권한도 함께 삭제
  • 데이터가 저장된 공간은 반환
  • DDL(Data Definition Language) 언어
-- 테이블 삭제
DROP TABLE 테이블명;

-- 데이터베이스 삭제
DROP DATABASE 데이터베이스명;

비교

구분DELETETRUNCATEDROP
목적특정 조건의 데이터 삭제테이블의 모든 데이터 삭제테이블 또는 데이터베이스 삭제
조건 사용가능 (WHERE 사용)불가능불가능
속도느림 (한 행씩 삭제)빠름매우 빠름
공간 반환반환되지 않음반환반환
AUTO_INCREMENT유지초기화삭제
ROLLBACK가능불가능불가능
테이블 구조유지유지삭제
사용 유형DMLDDLDDL

0개의 댓글