관리 메뉴

오버플로

[Oracle] delete / truncate / drop 본문

Oracle

[Oracle] delete / truncate / drop

NACO 2021. 9. 18. 15:03

 1. delete 

- DML

- 테이블에 record를 삭제할 때 사용

- transaction 대상 쿼리 : 삭제된 레코드는 rollback으로 복구할 수 있음

    > commit한 data는 rollback 불가

- truncate보다 삭제하는 속도가 느림

- where절에 해당하는 레코드를 삭제 (0~n건 삭제)

- 문법)

-- 해당 테이블의 모든 내용 삭제

        delete from 테이블명;

-- 해당 테이블의 특정 레코드를 삭제

        delete from 테이블명

        where 컬럼명 = 기준값;

-- 학생 테이블의 여자에 해당하는 레코드를 모두 삭제
delete from test_student
where gender = '여';
commit;

select * from TEST_STUDENT;


 

 2. truncate 

- DDL

- 테이블의 모든 레코드를 절삭할 때 사용

- 절삭된 레코드는 rollback으로 복구되지 않음

- 문법) truncate table 테이블명;

--학생 테이블의 모든 레코드를 절삭
truncate table test_student;

select * from TEST_STUDENT;


 

 3. drop 

- DDL

- 데이터베이스의 객체를 삭제할 때 사용

   > table, sequence, view, synonym, index, function 등의 객체와 계정을 삭제할 수 있음

- 문법) drop 삭제할객체 이름;

            ex) drop table 테이블명;

 

- Oracle 11g부터는 삭제된 테이블이 휴지통으로 들어감

   * 휴지통 보기 (삭제된 테이블의 목록을 확인할 수 있음) : sqlplus에서 > show recyclebin;

   * 테이블 복구 (같은 이름의 테이블이 존재하며 복구되지 않음) :  falshback table 테이블명 to before drop;

    * 휴지통 비우기 : purge recyclebin;

 => 휴지통이 비워져야 완전삭제!

--학생 테이블 삭제
drop table test_student;
select * from TEST_STUDENT;

-- 삭제완료!

 

 

'Oracle' 카테고리의 다른 글

[Oracle] function(함수)  (0) 2021.09.20
[Oracle] select - where / group by ~ having / order by  (0) 2021.09.19
[Oracle] 산술연산자  (0) 2021.09.16
[Oracle] transaction / commit / rollback  (0) 2021.09.14
[Oracle] select / alias / update  (0) 2021.09.13
Comments