본문 바로가기
오라클

[오라클] DROP 문 완벽 정리

by devlog93 2026. 1. 15.

오라클에서 DROP문은 데이터베이스 객체를 완전히 삭제할 때 사용하는 DDL문이다. DELETE나 TRUNCATE처럼 데이터만 지우는 게 아니라 테이블, 뷰, 인덱스 같은 객체를 DB에서 완전히 제거하는 것이다...! 그러므로 매우 주의해서 작성해야 한다. 특히 되돌릴 수가 없다...!


1. DROP 문의 개념

DROP은 아래와 같은 객체들을 삭제할 수 있다.

  • TABLE 
  • VIEW
  • INDEX
  • SEQUENCE
  • SYNONYM
  • PROCEDUER, FUNTION, PACKAGE

DB구조 자체를 정리하거나 변경할 때 사용하는 명령어라고 기억하면 됨...!


2. DROP TABLE 기본 문법

DROP TABLE 테이블명;

예제

  • SQL을 실행하면 EMP 테이블은 완전히 삭제된다. 해당 테이블에 연관된 컬럼, 제약조건, 데이터 전부 사라진다...!
  • COMMIT이나 ROLLBACK으로 복구가 불가능하니 주의하자...!
DROP TABLE EMP;

3. DROP과 RECYCLEBIN

오라클에서는 기본적으로 DROP TABLE을 실행하면 RECYCLEBIN으로 이동함.

SELECT *
  FROM RECYLEBIN;

이 경우는 밑에와 같이 복구가 가능하다.

FLASHBACK TABLE EMP TO BEFORE DROP;

하지만 밑의 조건에서는 복구가 불가능하다.

  • PURGE 옵션 사용
  • 휴지통 비활성화
  • SYSTEM 권한으로 삭제
  • 공간 부족으로 자동 삭제

4. DROP TABLE PURGE

  • PURGE옵션을 사용하면 휴지통을 거치지 않고 정말 삭제됨
  • 이 경우는 FLASHBACK복구도 불가능
DROP TABLE EMP PURGE;

5. 제약조건이 있는 테이블 DROP

부모-자식관계가 있는 테이블을 삭제하면 에러가 발생함...!

ORA-02449: unique/primary keys referenced by foreign keys

이럴 때는 밑의 옵션을 사용하자.

  • CASCADE CONSTRAINTS: 참조 중인 외래키 제약조건도 함께 삭제
DROP TABLE 부모테이블 CASCADE CONSTRAINTS;

6. DROP INDEX

DROP INDEX 인덱스명;

예제

  • 인덱스만 삭제
  • 테이블 데이터에는 영향이 없다.
DROP INDEX IDX_EMP_NAME;

7. DROP VIEW

  • VIEW는 가상 테이블이기 때문에 DROP해도 실제 테이블 데이터는 삭제되지 않는다.
DROP VIEW 뷰명;

8. DROP SEQUENCE

  • 시퀀스를 DROP하면 다음 번호도 함께 사라짐. 다시 생성하면 처음부터 다시 시작함...!
DROP SEQUENCE 시퀀스명;

9. DROP vs TRUNCATE vS DELETE

DROP은 가장 강력하고 위험하기 때문에 진짜 주의하자...

구분 DROP TRUNCATE DELETE
대상 객체 자체 데이터 데이터
ROLLBACK 불가 불가 가능
WHERE 없음 없음 가능
구조유지  X O O

10. DROP 주의사항

  • 운영 DB에서는 절대 바로 사용하지 말자.
  • 실행 전 반드시 SELECT로 대상 확인
  • 가능하면 백업 후 실행
  • FK관계 확인하자.

마무리

오늘은 DROP문에 대해 알아보았다. DROP문은 오라클에서 가장 강력한 삭제 명령어이다. 그러니 미리 SELECT로 대상을 확인하고 작성하자. 그냥 데이터만 지우는 게 아니고 아예 삭제되니... 어떻게 보면 무서운 명령어인 것 같다... 특히 운영 DB는 진짜 조심하자. DELETE문도 마찬가지로 그전에 알아본 것처럼 SELECT문으로 대상을 확인하는 습관을 들이자...! 감사합니다. (_ _)