오라클에서 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문으로 대상을 확인하는 습관을 들이자...! 감사합니다. (_ _)
'오라클' 카테고리의 다른 글
| [오라클] PARTITION BY 완벽 정리 (0) | 2026.01.17 |
|---|---|
| [오라클] DELETE vs DROP vs TRUNCATE 완벽 정리 (0) | 2026.01.16 |
| [오라클] ALTER 문 완벽 정리 (0) | 2026.01.14 |
| [오라클] CREATE 문 완벽 정리 (0) | 2026.01.13 |
| [오라클] ROW_NUMBER() 완벽 정리(ROWNUM과 차이) (0) | 2026.01.12 |