SQLD 시험 전 공부해야 할 것2 : DROP, TRUNCATE, DELETE 차이점

 

 

시험에 자주 나오는 단골 질문 중 하나인 DROP, TRUNCATE, DELETE의 차이점 및 기능에 대해 알아보도록 하겠습니다!

 

SQL에서 DROP, TRUNCATE 및 DELETE 문의 주요 차이점은 다음과 같습니다

 

기능

DROP TRUNCATE DELETE
전체 테이블 또는 데이터베이스를 영구적으로 제거합니다. 테이블에서 모든 행을 제거하지만 테이블 구조는 유지합니다. 특정 조건에 따라 테이블에서 특정 행을 제거합니다.
테이블 정의 자체를 완전히 삭제 테이블을 최초 생성된 초기상태로 만듦 데이터만 삭제
DDL DDL(일부 DML 성격을 가짐) DML

 

DROP  예시

DROP TABLE employees; -- 인덱스, 트리거 및 제약 조건을 포함하여 전체 "인덱스" 테이블과 관련된 모든 개체를 삭제합니다.

TRUNCATE 예시

TRUNCATE TABLE orders; -- 테이블 구조와 관련 개체(예: 인덱스 및 트리거)를 유지하면서 "주문" 테이블에서 모든 행을 제거합니다.

DELETE 예시

DELETE FROM customers WHERE city = 'London';-- 도시가 런던인 "고객" 테이블에서 모든 행을 제거합니다.

 

속도

DROP TRUNCATE DELETE
테이블이나 데이터베이스를 삭제하기만 하면 되며 모든 관련 개체(예: 인덱스, 트리거, 제약 조건)도 삭제되므로 가장 빠릅니다. 테이블에서 모든 행을 제거하고 데이터 페이지의 할당을 해제하기만 하면 테이블 구조가 그대로 유지되므로 DELETE보다 빠릅니다. 연결된 개체는 삭제되지 않습니다. 한 번에 하나의 행을 삭제하고 각 삭제 작업을 기록하므로 속도가 가장 느립니다. 테이블 구조 및 관련 개체는 영향을 받지 않습니다.

 

복구여부

DROP TRUNCATE DELETE
실행을 취소할 수 없으며 데이터가 영구적으로 손실됩니다. 데이터베이스가 전체 복구 모드에 있는 경우 트랜잭션 로그를 사용하여 실행 취소할 수 있지만 단순 복구 모드에서는 실행 취소할 수 없습니다. 시스템에 장애가 발생하면 데이터가 영구적으로 손실됩니다. 트랜잭션 로그를 사용하여 각 삭제 작업을 기록하므로 취소할 수 있습니다. 커밋 작업 전에 시스템 오류가 발생하면 데이터를 복원할 수 있습니다.
ROLLBACK 불가능 ROLLBACK 불가능 COMMIT 이전 ROLLBACK 가능

 

여기서 COMMIT과 ROLLBACK이란

SQL에서 COMMIT 및 ROLBOLLBACK은 트랜잭션을 관리하는 데 사용됩니다. 트랜잭션은 단일 단위로 실행되는 하나 이상의 SQL 문으로 구성된 논리적 작업 단위입니다. 커밋 및 롤백을 사용하면 트랜잭션 내에서 수행된 데이터 변경의 내구성과 일관성을 제어할 수 있습니다.

COMMIT: 트랜잭션의 변경 내용을 데이터베이스에 저장하는 데 사용됩니다. COMMIT 문이 실행되면 변경 내용이 영구적으로 변경되어 실행 취소할 수 없습니다. COMMIT 문은 현재 트랜잭션을 종료하고 트랜잭션 내의 모든 변경 내용을 다른 트랜잭션에 표시합니다.

ROLBACK: 트랜잭션의 변경 내용을 실행 취소하고 데이터베이스를 이전 상태로 복원하는 데 사용됩니다. ROLBACK 문이 실행되면 트랜잭션 내의 모든 변경 내용이 삭제되고 데이터베이스가 이전 상태로 복원됩니다. ROLBACK 문은 현재 트랜잭션을 종료하고 데이터베이스를 트랜잭션이 시작되기 전의 이전 상태로 되돌립니다.

 

권한

DROP TRUNCATE DELETE
전체 테이블 또는 데이터베이스를 삭제할 수 있으므로 가장 높은 수준의 권한이 필요합니다. 테이블에 대한 다른 테이블 권한이 필요합니다. 테이블에 대한 삭제 권한이 필요합니다.

 

요약

DROP는 전체 테이블 또는 데이터베이스를 영구적으로 삭제하는 데 사용되고, TRUNCATE는 테이블 구조를 유지하면서 테이블에서 모든 행을 신속하게 제거하는 데 사용되며, DELETE는 특정 조건에 따라 테이블에서 특정 행을 선택적으로 제거하는 데 사용됩니다. 사용할 명령문의 선택은 속도, 데이터 보존 또는 작업 실행 취소 기능과 같은 당면한 작업의 특정 요구 사항에 따라 달라집니다.

 

+ Recent posts