-
DELETE VS TRUNCATE VS DROP개발/Database 2018. 7. 26. 11:20
요즘 쿼리 짜기에 재미를 붙여서 신나게 쿼리를 뚱땅뚱땅 만들고 있는데
INSERT 쿼리문이 시작하기 전에 TRUNCATE 문을 붙여주라는 명을 받았다.
그러고보니 CREATE TABLE...시작 전에는 DROP TABLE.... 을 붙여주고
INSERT INTO... 시작 전에 TRUNCATE...를 붙여주는걸 스크립트에서 종종 발견했다.
무슨 차이인지 검색해보니 이미 너무 알아보기 쉽게 잘 정리된 것이 있어서 퍼옴
출처 : https://wikidocs.net/4021
* DELETE, TRUNCATE, DROP 명령어의 차이점
이 그림을 보면 정말 명확하게 차이점이 드러난다.
1. DELETE
- 데이터만 지워지고 테이블 용량과 인덱스 등은 삭제되지 않음
- WHERE 조건을 걸어 특정 데이터만 삭제 가능
- 삭제 후 ROLLBACK 하면 삭제한 데이터 원복 가능
2. TRUNCATE
- 데이터 및 인덱스 등이 모두 삭제되면서 테이블 용량도 감소함
- 테이블 구조까지 삭제되지는 않음
- 테이블 중 일부만 선택하여 삭제 불가
- 삭제 후 원복 불가능
3. DROP
- 데이터, 인덱스, 구조를 포함하여 테이블 객체를 아예 삭제함.
- 삭제 후 원복
'개발 > Database' 카테고리의 다른 글
SQL을 활용해서 스네이크 케이스를 카멜 케이스로 바꾸기 (0) 2018.07.26 나도 WITH절을 써보자 (0) 2018.07.26 DECODE 와 CASE : 과연 그놈이 그놈일까 (0) 2018.07.18 [MariaDB] MariaDB 에서 ROW NUMBER() 사용하기 (0) 2018.01.23 PL/SQL 없이 한 테이블의 평균값을 구하여 다른 테이블에 UPDATE 하기 (0) 2016.12.08 댓글