Oracle에서 데이터를 삭제하는 세 가지 방법

Oracle에서 데이터를 삭제하는 세 가지 방법

테이블(레코드 및 구조)을 삭제하는 문 delete——truncate——drop

드롭 명령

테이블 테이블 이름 삭제 ;

예: 학생 테이블 삭제(학생) 테이블 학생
삭제 ;

참고:
        1. 테이블 데이터를 삭제하기 위해 drop을 사용하면 테이블의 데이터뿐만 아니라 구조도 삭제됩니다!

자르기 명령

테이블   테이블 이름을 자릅니다.

예: 학생 테이블 삭제 (학생)
테이블 자르기 학생;

참고:
        1. 테이블 데이터를 삭제하기 위해 자르기를 사용하면 테이블의 데이터만 삭제되며 테이블 구조는 삭제되지 않습니다!
        2. 테이블 전체의 데이터를 삭제하는 경우, 시스템에서 한번에 데이터를 삭제하는 방식으로 진행되므로 보다 효율적입니다.3.
        삭제 를 잘라내어 공간을 확보합니다.

삭제 명령

 테이블 이름 에서 삭제 ;

예: 학생 테이블 삭제(학생) 학생
에서 삭제  ;

참고:       
        1. 테이블 데이터를 삭제하기 위해 삭제를 사용하면 테이블의 데이터만 삭제되며 테이블 구조는 삭제되지 않습니다!
        2. 테이블 전체의 데이터도 삭제되지만 시스템에서 행을 하나씩 삭제하는 과정이므로 truncate 에 비해 효율이 떨어 집니다
        .3. 삭제해도 공간이 해제되지 않습니다.

자르기에 대한 간략한 요약:

truncate table은 기능적으로 where 절이 없는 delete 문과 동일합니다. 둘 다 테이블의 모든 행을 삭제합니다.

그러나 자르기는 삭제보다 빠르며 시스템 및 트랜잭션 로그 리소스를 덜 사용합니다.

delete 문은 한 번에 한 행을 삭제하고 삭제된 각 행에 대한 항목을 트랜잭션 로그에 기록합니다. 따라서 삭제 작업을 롤백할 수 있습니다.

1. Truncate는 크든 작든 다양한 테이블에서 매우 빠릅니다. 롤백 명령이 있는 경우 delte는 취소되지만 truncate는 취소되지 않습니다.

2. Truncate는 DDL 언어로 다른 모든 DDL 언어와 마찬가지로 암시적으로 제출되며 truncate에서는 롤백 명령을 사용할 수 없습니다.

3. Truncate는 상위 레벨과 모든 인덱스를 재설정합니다. 전체 테이블과 인덱스를 완전히 찾아볼 때 잘라내기 작업 후의 테이블은 삭제 작업 후의 테이블보다 훨씬 빠릅니다.

4. 잘라내기는 삭제 트리거를 트리거할 수 없습니다.

5. 테이블을 삭제하면 테이블과 테이블의 인덱스가 초기 크기로 재설정되지만 삭제는 수행되지 않습니다.

6. 상위 테이블은 지울 수 없습니다.

추천

출처blog.csdn.net/weixin_44657888/article/details/122313659