Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

SQL에서 DELETE와 DROP의 차이점 완벽 정리

이 글에서는 SQL에서 자주 혼동되는 두 가지 명령어인 DELETEDROP의 차이점을 자세히 살펴보겠습니다. 두 명령어 모두 데이터를 제거하는 데 사용되지만, 작동 방식과 용도는 완전히 다릅니다. 각 명령어의 특징을 이해하면 상황에 맞게 올바르게 사용할 수 있습니다.

DELETE란?

  • 테이블(관계)에서 일부 또는 전체 레코드(튜플)를 삭제합니다.

  • DML(Data Manipulation Language, 데이터 조작어)에 해당합니다.

  • 'WHERE' 절을 사용하여 삭제할 대상을 필터링할 수 있습니다.

  • 데이터 버퍼에서 작동하므로 트랜잭션 롤백(ROLLBACK)이 가능합니다.

  • 'DELETE' 명령으로 모든 레코드를 삭제하더라도 테이블의 메모리 공간은 해제되지 않습니다.

  • 대량의 데이터를 처리할 때 메모리 부족 현상이 발생할 수 있습니다.

DROP이란?

  • 테이블, 제약 조건(constraint)과 같은 스키마의 명명된 요소나 스키마 전체를 제거합니다.

  • DDL(Data Definition Language, 데이터 정의어)에 해당합니다.

  • 'WHERE' 절을 사용하지 않습니다.

  • 데이터에 직접 작동하기 때문에 롤백이 불가능합니다.

  • 메모리 공간을 즉시 해제합니다.

  • 메모리 단편화(fragmentation)가 발생할 수 있습니다.

DELETE와 DROP 핵심 차이점 비교

구분DELETEDROP
명령어 분류DML (데이터 조작어)DDL (데이터 정의어)
제거 대상테이블 내부의 레코드테이블 또는 스키마 자체
WHERE 절 사용가능불가능
롤백 가능 여부가능불가능
메모리 공간 해제해제되지 않음즉시 해제됨

사용 예시

-- DELETE 예시: 특정 조건에 맞는 레코드만 삭제
DELETE FROM employees WHERE department = 'Sales';

-- DROP 예시: 테이블 자체를 완전히 삭제
DROP TABLE employees;

정리하면, 특정 데이터만 선택적으로 제거하고 싶다면 DELETE를, 테이블 구조 자체를 데이터베이스에서 완전히 없애고 싶다면 DROP을 사용하는 것이 적절합니다. 특히 DROP은 되돌릴 수 없으므로 실행 전 반드시 백업 여부를 확인하는 것이 좋습니다.