2 분 소요

DROP 문은 데이터베이스와 테이블을 삭제할 때 사용하는 SQL 명령어입니다. 삭제 작업은 영구적이며, 복구가 불가능하기 때문에 신중한 사용이 필요합니다. 이번 글에서는 DROP DATABASE, DROP TABLE, 그리고 TRUNCATE TABLE의 사용법과 주요 차이점까지 초보자도 쉽게 이해할 수 있도록 정리했습니다.


1. 데이터베이스 삭제하기 (DROP DATABASE)

DROP DATABASE는 데이터베이스 전체와 그 안의 모든 테이블, 데이터를 완전히 삭제합니다. 데이터베이스 삭제 후 복구는 불가능하므로 반드시 신중하게 사용해야 합니다.

DROP DATABASE 문법과 예제

기본 문법

DROP DATABASE 데이터베이스이름;

예제

DROP DATABASE Hotel;

이 명령어 실행 시 Hotel 데이터베이스와 그 안의 모든 데이터가 삭제됩니다.

IF EXISTS 옵션으로 에러 방지하기

존재하지 않는 데이터베이스를 삭제하면 에러가 발생합니다. 이를 방지하기 위해 IF EXISTS를 사용할 수 있습니다.

문법 예시

DROP DATABASE IF EXISTS 데이터베이스이름;

예제

DROP DATABASE IF EXISTS Hotel;

2. 테이블 삭제하기 (DROP TABLE)

DROP TABLE 명령어는 데이터베이스 내 특정 테이블과 그 안의 모든 데이터를 삭제할 때 사용합니다.

DROP TABLE 문법과 예제

기본 문법

DROP TABLE 테이블이름;

예제

DROP TABLE Reservation;

이 명령어로 Reservation 테이블과 그 안의 모든 데이터가 삭제됩니다.

IF EXISTS 옵션으로 에러 방지하기

존재하지 않는 테이블 삭제 시 에러가 발생할 수 있으므로 IF EXISTS를 활용해 에러를 방지합니다.

문법 예시

DROP TABLE IF EXISTS 테이블이름;

예제

DROP TABLE IF EXISTS Reservation;

3. 테이블 데이터만 삭제하기 (TRUNCATE TABLE)

테이블의 구조는 유지한 채, 데이터만 삭제하고 싶을 때 사용하는 명령어가 바로 TRUNCATE TABLE입니다.

TRUNCATE TABLE 문법과 예제

기본 문법

TRUNCATE TABLE 테이블이름;

예제

TRUNCATE TABLE Reservation;
  • 테이블 구조는 유지, 모든 데이터가 즉시 삭제됩니다.
  • 데이터 초기화 용도로 자주 사용됩니다.

4. DROP vs. TRUNCATE 차이점 명확히 이해하기

구분 DROP TABLE TRUNCATE TABLE
영향 범위 테이블과 데이터 모두 삭제 데이터만 삭제 (테이블 구조 유지)
구조 유지 X (구조 삭제) O (구조 유지)
복구 가능 여부 복구 불가능 복구 불가능
속도 테이블 삭제 및 데이터 삭제 속도 빠름 데이터 삭제 속도가 매우 빠름
  • 테이블 자체를 완전히 삭제할 때는 DROP TABLE을 사용합니다.
  • 테이블 구조는 유지하면서 데이터만 삭제할 때는 TRUNCATE TABLE을 사용합니다.

DROP과 TRUNCATE 활용 실습 예제 (완성본)

다음은 데이터베이스 및 테이블 삭제를 명확하게 보여주는 실습 예제입니다.

-- 데이터베이스 선택
USE Hotel;

-- 테이블의 데이터만 삭제 (구조 유지)
TRUNCATE TABLE Reservation;

-- 테이블 완전 삭제 (구조까지 삭제)
DROP TABLE IF EXISTS Reservation;

-- 데이터베이스 완전 삭제
DROP DATABASE IF EXISTS Hotel;

요약 정리

기능 SQL 명령어 주의사항
데이터베이스 삭제 DROP DATABASE DB이름 데이터베이스 전체 삭제 (복구 불가능), IF EXISTS로 에러 방지
테이블 삭제 DROP TABLE 테이블이름 테이블 구조·데이터 삭제 (복구 불가능), IF EXISTS 사용 추천
테이블 데이터만 삭제 TRUNCATE TABLE 테이블이름 테이블 구조는 유지, 데이터만 삭제

질문 정리

  1. DROP과 DELETE의 차이는 무엇인가요?
    • DROP은 테이블 자체를 삭제합니다. DELETE는 조건을 지정하여 특정 데이터만 삭제합니다. (예: DELETE FROM Table WHERE 조건;)
  2. TRUNCATE 사용 후 데이터 복구가 가능한가요?
    • 일반적으로 불가능합니다. 사용 전 반드시 데이터를 백업해 두세요.
  3. 테이블 삭제 시 연관된 외래 키(Foreign Key)가 있으면 어떻게 하나요?
    • 외래 키 제약 조건을 우선 제거하거나 CASCADE 옵션을 사용하여 관련 데이터를 함께 삭제할 수 있습니다.
  4. DROP DATABASE 시 데이터베이스 내의 모든 테이블이 자동 삭제되나요?
    • 네, 데이터베이스 삭제 시 내부의 모든 테이블과 데이터가 함께 삭제됩니다.
  5. 존재하지 않는 테이블 삭제 시 발생하는 에러를 방지하려면?
    • 반드시 DROP TABLE IF EXISTS 옵션을 사용하여 에러 발생을 예방하세요.

카테고리:

업데이트:

댓글남기기