본문 바로가기

Programming/Oracle

[oracle 10g] 테이블 온전히 삭제하는 법-쓰레기값 제거하기

1. 테이블만들기
   -- NOT NULL: Insert시에 반드시 데이터를 입력해야합니다.
   -- NULL: Insert시에 데이터를 생략해도 됩니다.
   CREATE TABLE visitor (
        num        INT            NOT NULL ,
        title         VARCHAR(20)   NULL ,
        name      VARCHAR(20)   NULL ,
        email      VARCHAR(30)   NULL
   );



2. SQL-DDL 문 사용하기

--테이블에 컬럼을 추가합니다.(반드시 null속성을 지정)
--DDL(CREATE....)언어는 AutoCommit 입니다. 
ALTER TABLE visitor
ADD visited INT NULL;


--title 컬럼을 varchar(20)에서 varchar(300)으로 변경합니다.
ALTER TABLE visitor
MODIFY(title varchar(300));


--테이블에서 컬럼을 삭제합니다.
--레코드가 있어도 컬럼을 지울 수 있습니다.
ALTER TABLE visitor
DROP COLUMN visited;


-- 테이블을 오라클 휴지통으로 이동합니다.(10g부터 지원)
   DROP TABLE handphone;
   이렇게 지워도 쓰레기 값으로 데이터베이스에 남아 있게 된다.
   그러므로 다음의 명령어로 복구가 가능하다.

-- 삭제한 테이블을 복구합니다. 
   FLASHBACK TABLE handphone TO BEFORE DROP;


-- 테이블을 휴지통으로 이동하지 않고 완전히 삭제합니다.
   DROP TABLE handphone PURGE;
   purge를 사용함으로써 완전히 삭제가 가능하다.

-- 오라클 휴지통을 비웁니다.
   PURGE RECYCLEBIN;
   쓰레기 값으로 데이터베이스에 남아있는 값을 모두 지우고 싶을 시에 사용하는 명령어이다.