Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[SQL] 테이블 삭제 본문
DROP TABLE 명령
- 테이블의 모든 데이터 및 구조를 삭제하는 명령
- 테이블과 연관된 인덱스도 모두 삭제
- 테이블과 연관된 뷰와 동의어는 사용불가 상태로 유지
- 해당 테이블을 소유하고 있거나 높은 레벨의 권한이 있는 경우 테이블 제거 가능
- 자동으로 COMMIT 되므로 ROLLBACK 불가
- PURGE 옵션을 사용하지 않은 경우 FLASHBACK 가능
- 구문
DROP TABLE table명 [PURGE];
RECYCLE BIN (휴지통)
- 삭제된 테이블에 대한 휴지통 제공
- FLASHBACK 명령문으로 삭제된 테이블을 휴지통으로부터 복원 가능
- 실수로 잘못 삭제한 테이블을 쉽고 빠르게 복원
- 오라클 10g부터 제공
- 고려사항
- DROP TABLE 시 PURGE 옵션을 사용한 경우 테이블은 휴지통에 저장되지 않음
- 사용자는 휴지통 객체가 존재한다면 언제라도 해당 테이블을 복원 가능
- customers 테이블을 삭제하고 확인
DROP TABLE customers;
DESC customers;
SELECT * FROM tab;
- FLASHBACK 명령으로 테이블을 복원하고 확인
FLASHBACK TABLE customers TO BEFORE DROP;
DESC customers;
SELECT * FROM tab;
- PURGE 옵션으로 테이블을 영구 삭제한 후 확인
DROP TABLE customers PURGE;
SELECT * FROM tab;
TRUNCATE TABLE 문
- 테이블에서 모든 행을 제거하고 해당 테이블이 사용하던 저장 공간을 해제하는 DDL 문
- TRUNCATE TABLE 문으로 수행한 행 제거 작업은 ROLLBACK 불가
- 결과는 DELETE TABLE을 WHERE 절 없이 사용하고 COMMIT 한 것과 동일
- 구문
TRUNCATE TABLE table명;
- emp300 테이블을 확인
SELECT * FROM emp300;
- emp300 테이블을 TRUNCATE 한 후 모든 행은 삭제되고 테이블 구조만 남아 있는 것을 확인
TRUNCATE TABLE emp300;
DESC emp300;
SELECT * FROM emp300;
RENAME 명령
- 객체 이름 변경 명령
- 테이블 또는 뷰, 시퀀스 또는 동의어 등 객체 이름 변경
- 이름을 변경할 객체의 소유자가 수행
- RENAME 명령문 사용 경우
- 테이블의 이름이 지나치게 길거나 저장된 데이터와 연관성이 없는 경우
- 테이블의 저장구조를 재구성할 목적
- 구문
RENAME old_name TO new_name;
- emp300 테이블의 이름을 dept300 으로 변경하고 확인
RENAME emp300 TO dept300;
DESC emp300;
DESC dept300;
'Oracle SQL' 카테고리의 다른 글
[SQL] 인덱스 (0) | 2023.06.02 |
---|---|
[SQL] 제약 조건 (0) | 2023.06.02 |
[SQL] 테이블 수정 (0) | 2023.06.02 |
[SQL] 테이블의 생성과 관리 (0) | 2023.05.31 |
[SQL] 데이터베이스 트랜잭션 (0) | 2023.05.30 |
Comments