SQL)Delete, Truncate, Cascade, Drop

Songss·2024년 12월 20일

DBMS

목록 보기
18/20

아래는 DELETE, TRUNCATE, CASCADE, DROP 기능을 비교한 표입니다:

기능/특징DELETETRUNCATECASCADEDROP
설명특정 조건에 맞는 데이터를 삭제테이블의 모든 데이터를 삭제연관된 데이터도 함께 삭제테이블 또는 데이터베이스를 삭제
사용 대상조건에 맞는 특정 행(row)테이블의 모든 행(row)외래 키(Foreign Key) 제약 조건에 따라테이블, 뷰, 인덱스, 데이터베이스 등
조건 사용 가능WHERE 조건문 사용 가능조건문 사용 불가능조건문 사용 불가능조건문 사용 불가능
속도느림 (각 행마다 개별적으로 삭제)빠름 (전체 데이터 초기화)참조 테이블 삭제 시 자동 적용빠름 (구조 자체 삭제)
자동 증가 초기화유지 (AUTO_INCREMENT 값 유지)초기화 (AUTO_INCREMENT 값 초기화)N/A초기화 (테이블 삭제로 구조 제거)
트랜잭션 롤백가능불가능가능 (상황에 따라)불가능
제약 조건테이블 및 제약 조건 유지테이블 및 제약 조건 유지연관된 제약 조건에 따라 작동테이블 및 모든 제약 조건 삭제
테이블 존재 여부테이블 유지테이블 유지테이블 유지테이블 삭제

추가 설명:

  1. DELETE:
    • 특정 데이터를 선택적으로 삭제 가능.
    • 테이블의 구조와 제약 조건은 유지.
    • 삭제된 데이터는 트랜잭션 로그에 기록되며, 롤백 가능.
  2. TRUNCATE:
    • 테이블의 모든 데이터를 빠르게 삭제.
    • 트랜잭션 로그 최소화로 성능이 뛰어남.
    • 테이블 구조와 제약 조건은 유지되며, 외래 키 제약 조건이 있으면 실행 불가능.
  3. CASCADE:
    • 외래 키 제약 조건(ON DELETE CASCADE, ON UPDATE CASCADE)에 따라 부모 테이블의 데이터 삭제/수정 시 참조된 자식 데이터도 함께 삭제/수정.
  4. DROP:
    • 테이블, 데이터베이스, 인덱스 등 구조 자체를 삭제.
    • 테이블 삭제 시 데이터뿐만 아니라 제약 조건, 인덱스, 자동 증가 설정 등이 모두 삭제됨.
    • 롤백 불가능하므로 신중히 사용해야 함.

사용 시 주의:

  • 중요한 데이터를 다룰 때는 반드시 백업을 권장합니다.
  • DROP은 데이터와 테이블 구조 모두 삭제하므로 복구가 어려움.
  • TRUNCATE는 데이터만 삭제하고 테이블을 유지하므로 초기화 시 유용하지만, 외래 키 제약이 있을 경우 사용할 수 없습니다.

0개의 댓글