DB

[DB] DELETE, TRUNCATE, DROP 삭제 명령어 차이

미조미 2021. 4. 2. 12:00

업무를 하다보면 데이터를 삭제하거나 테이블 자체를 제거해야 하는 상황이 발생합니다.

이때 사용되는 명령어는 DELETE, TRUNCATE, DROP 등이 있고 오늘은 이 셋의 개념과 차이점을

알아보고자 합니다! 이 내용은 SQL자격검정 실전문제 서적을 참고하여 작성하였습니다.

 

 

NOCUST_NOBIRTHSEX
100001960705F
200002960502M

위와 같은 테이블 A가 있다고 할 때

 

 

 

1) DELETE FROM A

NOCUST_NOBIRTHSEX
    
    

DELETE의 경우에는 테이블에 저장된 '데이터만 삭제' 되고 디스크 상의 공간은 그대로 갖고 있습니다.

주로 WHERE 조건을 걸어서 특정 데이터만을 삭제할 때 사용하게 됩니다.

테이블 존재: 유지, 저장공간: 유지, 롤백: 가능 상태입니다.

 

 

2) TRUNCATE A

NOCUST_NOBIRTHSEX

TRUNCATE의 경우에는 최초 테이블 상태로 돌아가게 됩니다. 즉, 모든 로우를 삭제하고 컬럼만 남아있게 됩니다.

따라서 인덱스와 용량도 삭제됩니다. 단, 모든 로우를 삭제하기 때문에 DELETE처럼 WHERE 조건을 걸어서 원하는

데이터만 삭제하는 게 불가능 합니다.

테이블 존재: 유지, 저장공간: 반환, 롤백: 불가능 상태입니다.

 

 

3)DROP TABLE A

 

DROP을 진행하면 어떤 모습일까요?

DROP명령어는 데이터, 테이블, 용량, 인덱스, 제약조건 즉 공간과 객체를 모두 삭제하게 됩니다.

따라서 다시는 사용하지 않을 미사용 테이블에 해당 명령어를 사용하면 되겠죠?

테이블 존재: 삭제, 저장공간: 반환, 롤백: 불가능 상태입니다.

 

 

 

궁금하신 내용이 있다면 댓글로 남겨주세요!