DB
[DB] DELETE, TRUNCATE, DROP 삭제 명령어 차이
미조미
2021. 4. 2. 12:00
업무를 하다보면 데이터를 삭제하거나 테이블 자체를 제거해야 하는 상황이 발생합니다.
이때 사용되는 명령어는 DELETE, TRUNCATE, DROP 등이 있고 오늘은 이 셋의 개념과 차이점을
알아보고자 합니다! 이 내용은 SQL자격검정 실전문제 서적을 참고하여 작성하였습니다.
NO | CUST_NO | BIRTH | SEX |
1 | 00001 | 960705 | F |
2 | 00002 | 960502 | M |
위와 같은 테이블 A가 있다고 할 때
1) DELETE FROM A
NO | CUST_NO | BIRTH | SEX |
DELETE의 경우에는 테이블에 저장된 '데이터만 삭제' 되고 디스크 상의 공간은 그대로 갖고 있습니다.
주로 WHERE 조건을 걸어서 특정 데이터만을 삭제할 때 사용하게 됩니다.
테이블 존재: 유지, 저장공간: 유지, 롤백: 가능 상태입니다.
2) TRUNCATE A
NO | CUST_NO | BIRTH | SEX |
TRUNCATE의 경우에는 최초 테이블 상태로 돌아가게 됩니다. 즉, 모든 로우를 삭제하고 컬럼만 남아있게 됩니다.
따라서 인덱스와 용량도 삭제됩니다. 단, 모든 로우를 삭제하기 때문에 DELETE처럼 WHERE 조건을 걸어서 원하는
데이터만 삭제하는 게 불가능 합니다.
테이블 존재: 유지, 저장공간: 반환, 롤백: 불가능 상태입니다.
3)DROP TABLE A
DROP을 진행하면 어떤 모습일까요?
DROP명령어는 데이터, 테이블, 용량, 인덱스, 제약조건 즉 공간과 객체를 모두 삭제하게 됩니다.
따라서 다시는 사용하지 않을 미사용 테이블에 해당 명령어를 사용하면 되겠죠?
테이블 존재: 삭제, 저장공간: 반환, 롤백: 불가능 상태입니다.
궁금하신 내용이 있다면 댓글로 남겨주세요!