(새 문서: # 오라클 DROP TABLE 문 == 개요 == '''DROP TABLE'''은 오라클 데이터베이스에서 테이블과 그 테이블에 포함된 모든 데이터를 완전히 삭제하는 DDL(Data Definition Language) 명령어입니다. 테이블 구조와 데이터를 영구적으로 제거할 때 사용합니다. == 기본 구문 == ```sql DROP TABLE [schema.]table_name [CASCADE CONSTRAINTS] [PURGE]; ``` == 옵션 설명 == === CASCADE CONSTRAINTS === * 삭제할 테이블을 참...) |
편집 요약 없음 |
||
(같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
== 개요 == | == 개요 == | ||
5번째 줄: | 4번째 줄: | ||
== 기본 구문 == | == 기본 구문 == | ||
<source lang=sql> | |||
DROP TABLE [schema.]table_name [CASCADE CONSTRAINTS] [PURGE]; | DROP TABLE [schema.]table_name [CASCADE CONSTRAINTS] [PURGE]; | ||
</source> | |||
== 옵션 설명 == | == 옵션 설명 == | ||
22번째 줄: | 21번째 줄: | ||
=== 기본 삭제 === | === 기본 삭제 === | ||
<source lang=sql> | |||
DROP TABLE employees; | DROP TABLE employees; | ||
</source> | |||
=== 스키마 지정 삭제 === | === 스키마 지정 삭제 === | ||
<source lang=sql> | |||
DROP TABLE hr.employees; | DROP TABLE hr.employees; | ||
</source> | |||
=== 제약조건 함께 삭제 === | === 제약조건 함께 삭제 === | ||
<source lang=sql> | |||
DROP TABLE departments CASCADE CONSTRAINTS; | DROP TABLE departments CASCADE CONSTRAINTS; | ||
</source> | |||
=== 완전 삭제 (휴지통 안 거침) === | === 완전 삭제 (휴지통 안 거침) === | ||
<source lang=sql> | |||
DROP TABLE temp_data PURGE; | DROP TABLE temp_data PURGE; | ||
</source> | |||
== 휴지통(Recyclebin) 관련 == | == 휴지통(Recyclebin) 관련 == | ||
48번째 줄: | 47번째 줄: | ||
=== 휴지통 비우기 === | === 휴지통 비우기 === | ||
<source lang=sql> | |||
-- 특정 테이블 휴지통 비우기 | -- 특정 테이블 휴지통 비우기 | ||
PURGE TABLE employees; | PURGE TABLE employees; | ||
54번째 줄: | 53번째 줄: | ||
-- 전체 휴지통 비우기 | -- 전체 휴지통 비우기 | ||
PURGE RECYCLEBIN; | PURGE RECYCLEBIN; | ||
</source> | |||
== 주의사항 == | == 주의사항 == | ||
70번째 줄: | 69번째 줄: | ||
! 비교 항목 !! DROP TABLE !! TRUNCATE TABLE | ! 비교 항목 !! DROP TABLE !! TRUNCATE TABLE | ||
|- | |- | ||
| **테이블 구조** | 완전 삭제 | 유지 | | **테이블 구조** || 완전 삭제 || 유지 | ||
|- | |- | ||
| **저장 공간** | 할당 해제 | 초기화만 | | **저장 공간** || 할당 해제 || 초기화만 | ||
|- | |- | ||
| **롤백 가능** | 휴지통 사용 시만 | 불가능 | | **롤백 가능** || 휴지통 사용 시만 || 불가능 | ||
|- | |- | ||
| **속도** | 상대적으로 느림 | 매우 빠름 | | **속도** || 상대적으로 느림 || 매우 빠름 | ||
|- | |- | ||
| **트리거** | 작동 안함 | 작동 안함 | | **트리거** || 작동 안함 || 작동 안함 | ||
|} | |} | ||
2025년 5월 27일 (화) 00:16 기준 최신판
개요
DROP TABLE은 오라클 데이터베이스에서 테이블과 그 테이블에 포함된 모든 데이터를 완전히 삭제하는 DDL(Data Definition Language) 명령어입니다. 테이블 구조와 데이터를 영구적으로 제거할 때 사용합니다.
기본 구문
DROP TABLE [schema.]table_name [CASCADE CONSTRAINTS] [PURGE];
옵션 설명
CASCADE CONSTRAINTS
- 삭제할 테이블을 참조하는 다른 테이블의 **외래 키 제약조건을 함께 삭제**
- 이 옵션을 사용하지 않으면 참조하는 제약조건이 있을 경우 오류 발생
PURGE
- 휴지통(Recyclebin)을 거치지 않고 **즉시 완전히 삭제**
- 10g 버전부터 도입된 휴지통 기능을 우회
사용 예제
기본 삭제
DROP TABLE employees;
스키마 지정 삭제
DROP TABLE hr.employees;
제약조건 함께 삭제
DROP TABLE departments CASCADE CONSTRAINTS;
완전 삭제 (휴지통 안 거침)
DROP TABLE temp_data PURGE;
휴지통(Recyclebin) 관련
- 오라클 10g부터 휴지통 기능 도입
- PURGE 옵션 없이 삭제하면 휴지통으로 이동
- 복원 가능: `FLASHBACK TABLE table_name TO BEFORE DROP`
휴지통 비우기
-- 특정 테이블 휴지통 비우기 PURGE TABLE employees; -- 전체 휴지통 비우기 PURGE RECYCLEBIN;
주의사항
- **운영 환경에서 신중히 사용**해야 하는 위험한 명령어
- 삭제 전 반드시 **백업 확인** 필요
- 대용량 테이블 삭제 시 시스템 부하 발생 가능
- 삭제 후에는 **COMMIT 불필요** (DDL은 자동 커밋)
- 종속된 객체(인덱스, 트리거, 시노님 등)도 함께 삭제됨
TRUNCATE와의 차이
비교 항목 | DROP TABLE | TRUNCATE TABLE |
---|---|---|
**테이블 구조** | 완전 삭제 | 유지 |
**저장 공간** | 할당 해제 | 초기화만 |
**롤백 가능** | 휴지통 사용 시만 | 불가능 |
**속도** | 상대적으로 느림 | 매우 빠름 |
**트리거** | 작동 안함 | 작동 안함 |