티스토리 뷰

SQL

DELETE vs TRUNCATE vs DROP

코린이도이 2021. 7. 16. 12:01

- 테이블에서 전체 행을 삭제하는 세가지 방법, 각각의 차이를 반드시 이해하고 사용해야 함

구분 DELETE TRUNCATE DROP
SQL종류 DML
(데이터 조작어)
DDL
(데이터 정의어)
DDL
(데이터 정의어)
사용 예 SQL > DELETE FROM emp;
-> 전체 행 삭제
SQL > TRUNCATE TABLE emp;
-> 전체 행 삭제, 테이블 구조 남아 있음
SQL > DROP TABLE emp;
-> 테이블 삭제됨
특징 - 테이블의 행 삭제
- 행 단위로 수행됨
(row by row)
- 롤백 가능
- 이전 할당된 영역이 빈 공간으로 남아있음
- 테이블의 공간 해제 방식
- 테이블 구조는 남기고 테이블의 모든 행을 삭제하는 빠르고 효율적인 방법
- 롤백 안됨
- 테이블과 관련된 구조, 종속 객체, 권한에 영향을 주지 않음
- 테이블 구조가체가 삭제
- 테이블 뿐만 아니라 테이블에 관련된 index, 제약조건, trigger도 모두 삭제
- 삭제된 테이블에 부여된 권한도 삭제
- 롤백 안됨
주의 - Trigger가 걸려있다면 각 행이 삭제될 때 실행
- 행이 많을 경우 많은 시스템 자원 소모
- Redo log에 이전 데이터에 대한 정보를 남기지 않아 한번 삭제된 데이터는 복구가 불가능 하므로 주의 - 테이블 자체가 없어지기 때문에 테이블 구조 확인 불가능
- 한번 삭제된 테이블은 복구가 불가능
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함