Drop vs Truncate vs Delete

치로·2024년 8월 2일

1. Drop

  • drop table 테이블명;
  • 만들었던 테이블이 전부 삭제됨(존재 자체가 삭제)

2. Truncate

  • truncate table 테이블명;
  • 데이터만 통 삭제
  • truncate는 테이블이 삭제되는 명령어는 아니고, 테이블 안에 들어있던 모든 레코드들을 제거하는 명령어
  • 즉, truncate만으로는 table 구조를 완전히 삭제하는 것은 아님

3. Delete

  • delete from 테이블명 where...; (from 생략 가능)
  • 데이터 골라서 삭제 가능
  • truncate와 Delete의 차이점
    -> Delete는 where문으로 부분 삭제 가능
    -> Delete는 DML문, truncate는 DDL문
    -> 내부 방식에 차이 존재
    -> truncate는 drop 후에 create함
    -> 로그파일
-- deptname이 전산실인 데이터를 삭제
DELETE sample 
WHERE deptname = '전산실';
COMMIT;

-- 기획실 데이터 삭제
DELETE sample 
WHERE deptname = '기획실';
ROLLBACK;

0개의 댓글