Database/SQL

[SQL] DELETE, TRUNCATE, DROP의 차이

Jesse 2021. 10. 18. 16:30

Delete, Truncate, Drop의 차이

테이블을 지우는 명령어에 대해 알아 보았습니다.

  • Delete
  • Truncate
  • Drop

 

DELETE

DELETE FROM players;

DELETE을 사용해서 테이블에 있는 데이터를 지울 경우 특징

  • where를 사용하여 원하는 데이터만 지울수 있다 
  • 데이터를 지워도 테이블의 용량은 줄어들지 않는다
  • COMMIT이 포함되어 있지 않기 때문에 지우고 나서 ROLLBACK을 사용해서 데이터를 되돌릴수 있다 
  • 데이터를 지워도 전체 테이블의 정보는 아직 살아 있다

 

TRUNCATE

TRUNCATE players;

TRUNCATE을 사용해서 테이블에 있는 데이터를 지울 경우 특징

  • COMMIT이 포함되어 있기 때문에 지우고 나면 되돌릴수 없다
  • 데이터들이 차지하고 있던 메모리도 삭제 되기 때문에 용량도 줄어든다
  • DELETE처럼 where를 사용해서 테이블의 일부 데이터만 지우는건 불가능하다
  • TRUNCATE을 써도 테이블의 정보는 아직 살아 있다
  • 테이블의 전체 Row들을 삭제하기 때문에 DELETE보다 빠르다

 

DROP

DROP players;

DROP을 사용해서 테이블에 있는 데이터를 지울 경우 특징

  • 전체 테이블의 데이터들을 삭제한다
  • 테이블의 전체 구조를 삭제하기 때문에 해당 테이블에 데이터를 넣고 싶다면 테이블을 새로 만들어야 한다
  • ROLLBACK을 사용하여 되돌리는게 불가능하다