드롭 대 잘라 내기

삭제 및 자르기는 데이터베이스 관리 시스템에서 사용되는 두 개의 SQL (Structured Query Language) 문으로, 데이터베이스에서 데이터 레코드를 제거하려고합니다. Drop 및 Truncate 문은 모두 테이블 및 관련 SQL 문에서 전체 데이터를 제거합니다. 삭제 작업은 삭제 및 자르기보다 더 많은 저장 공간을 사용하므로이 경우 효과적이지 않습니다.

모든 데이터와 함께 데이터베이스의 테이블을 모두 삭제하려는 경우 SQL을 사용하면 Drop 문을 사용하여이 작업을 쉽게 수행 할 수 있습니다. 삭제 명령은 DDL (Data Definition Language) 명령이며 기존 데이터베이스, 테이블, 인덱스 또는 뷰를 삭제하는 데 사용할 수 있습니다. 데이터베이스에서 테이블 구조뿐만 아니라 테이블의 전체 정보를 삭제합니다. 또한 테이블의 모든 데이터를 간단하게 제거 할 수 있지만 테이블이 없으면 이러한 시나리오에서 SQL의 Truncate 문을 사용할 수 있습니다. 또한 잘림은 DDL 명령이며 테이블의 모든 행을 제거하지만 나중에 사용하기 위해 테이블 ​​정의는 동일하게 유지합니다.

드롭 명령

앞에서 언급 한 것처럼 Drop 명령은 테이블 정의와 해당 테이블에서 생성 된 모든 데이터, 무결성 제약 조건, 인덱스, 트리거 및 액세스 권한을 제거합니다. 따라서 데이터베이스에서 기존 객체를 완전히 삭제하고 명령을 실행 한 후 다른 테이블과의 관계도 더 이상 유효하지 않습니다. 또한 데이터 사전에서 테이블에 대한 모든 정보를 제거합니다. 다음은 테이블에서 Drop 문을 사용하는 일반적인 구문입니다.

드롭 테이블

위의 Drop 명령 예에서 데이터베이스에서 제거하려는 테이블 이름을 간단히 바꾸어야합니다.

외래 키 제약 조건에 의해 이미 참조 된 테이블을 삭제하는 데 Drop 문을 사용할 수 없다는 점을 지적하는 것이 중요합니다. 이 경우 참조 외래 키 제약 조건 또는 해당 특정 테이블을 먼저 삭제해야합니다. 또한 데이터베이스의 시스템 테이블에 Drop 문을 적용 할 수 없습니다.

삭제 명령은 자동 커밋 문이므로 일단 실행 된 작업은 롤백 할 수 없으며 트리거가 실행되지 않습니다. 테이블이 삭제되면 테이블에 대한 모든 참조가 유효하지 않으므로 테이블을 다시 사용하려면 모든 무결성 제한 조건 및 액세스 권한으로 테이블을 다시 작성해야합니다. 다른 테이블과의 모든 관계도 다시 찾아야합니다.

자르기 명령

자르기 명령은 DDL 명령이며 사용자 지정 조건없이 테이블의 모든 행을 제거하고 테이블에 사용 된 공간을 해제하지만 열, 인덱스 및 제약 조건이있는 테이블 구조는 동일하게 유지됩니다. 잘림은 테이블 데이터를 저장하는 데 사용 된 데이터 페이지를 할당 해제하여 테이블에서 데이터를 제거하며 이러한 페이지 할당 해제 만 트랜잭션 로그에 유지됩니다. 따라서 Delete와 같은 다른 관련 SQL 명령에 비해 적은 트랜잭션 로그 리소스 및 시스템 리소스를 사용합니다. 따라서 잘라내 기는 다른 것보다 조금 더 빠릅니다. 다음은 잘라 내기 명령의 일반적인 구문입니다.

절단 테이블

위의 구문에서 전체 데이터를 제거하려는 테이블 이름을 바꿔야합니다.

외래 키 제약 조건에 의해 참조 된 테이블에서는 잘림을 사용할 수 없습니다. 작동하기 전에 커밋을 자동으로 사용하고 나중에 다른 커밋을 사용하므로 트랜잭션 롤백이 불가능하며 트리거가 발생하지 않습니다. 테이블을 재사용하려면 데이터베이스의 기존 테이블 정의에만 액세스하면됩니다.

Drop과 Truncate의 차이점은 무엇입니까?

Drop 및 Truncate 명령은 모두 DDL 명령이며 자동 커밋 문이므로 이러한 명령을 사용하여 수행 된 트랜잭션을 롤백 할 수 없습니다.

Drop과 Truncate의 주요 차이점은 Drop 명령은 테이블의 모든 데이터를 제거 할뿐만 아니라 모든 참조가있는 데이터베이스에서 테이블 구조를 영구적으로 제거하는 반면, Truncate 명령은 테이블의 모든 행만 제거한다는 것입니다. 그리고 테이블 구조와 참조를 유지합니다.

테이블이 삭제되면 다른 테이블과의 관계가 더 이상 유효하지 않으며 무결성 제한 조건 및 액세스 권한도 제거됩니다. 따라서 테이블을 재사용해야하는 경우 관계, 무결성 제한 조건 및 액세스 권한으로 테이블을 재구성해야합니다. 그러나 테이블이 잘 리면 테이블 구조 및 해당 제한 조건은 나중에 사용하기 위해 유지되므로 위의 재생산은 재사용에 필요하지 않습니다.

이러한 명령을 적용 할 때는주의해서 사용해야합니다. 또한 이러한 명령의 특성, 작동 방식 및 필수 요소가 누락되지 않도록 사용하기 전에 신중하게 계획해야합니다. 마지막으로,이 두 명령을 사용하면 데이터베이스를 빠르고 쉽게 정리하여 더 적은 리소스를 소비 할 수 있습니다.