1️⃣ 공통점
모두 삭제하는 명령이다
2️⃣ 차이점
DELETE
- 데이터는 지워지지만, 테이블 용량은 줄어 들지 않음
- 원하는 데이터만 지울 수 있음
- 삭제 작업 이전으로 되돌릴 수 있음 (커밋 이전이라면 가능함)
- 사용자 commit, 로그 남김, 속도 느림
💡 로그 -> 실패 지점으로 복구, 데이터베이스 동기화(DBMS 일관성 유지)에 사용됨
DELETE FROM 테이블명
WHERE 조건
Truncate
- 테이블은 삭제하지 않고, 데이터만 삭제함 (테이블을 최초 생성된 초기 상태로 만듦)
- 원하는 데이터만 지울 수 없고 모든 데이터를 지워야 함
- 삭제 후 절대 되돌릴 수 없음
- auto commit, 로그 안남김, 속도 빠름
TRUNCATE TABLE 테이블명
DROP
- 테이블 전체를 삭제함
- 테이블의 공간과 객체 모두를 삭제하기 때문에, 삭제 후 절대 되돌릴 수 없음
- auto commit, 로그 안남김, 속도 빠름
- CASCADE : 참조하는 테이블까지 연쇄적으로 제거하는 옵션
- RESTRICT : 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션
DROP TABLE 테이블명