logo

DELETE와 TRUNCATE의 차이점

삭제 DML(Data Manipulation Language) 명령으로 테이블이나 관계에서 제거하거나 삭제하려는 행(튜플)을 지정할 때 사용됩니다. DELETE 명령에는 WHERE 절이 포함될 수 있습니다. WHERE 절을 DELETE 명령과 함께 사용하면 조건을 만족하는 행(튜플)만 제거되거나 삭제됩니다. 그렇지 않으면 기본적으로 테이블에서 모든 튜플(행)을 제거합니다. DELETE는 행 삭제를 기록한다는 점을 기억하세요.

통사론:

테이블 이름에서 삭제



WHERE 조건;

노트북 키보드의 삽입 키는 어디에 있나요?

자르기 DDL(Data Definition Language) 명령으로 테이블에서 모든 행이나 튜플을 삭제하는 데 사용됩니다. DELETE 명령과 달리 TRUNCATE 명령에는 WHERE 절 . TRUNCATE 명령에서는 삭제된 각 데이터 페이지에 대한 트랜잭션 로그가 기록되지 않습니다. DELETE 명령과 달리 TRUNCATE 명령은 빠릅니다. TRUNCATE 명령을 사용한 후에는 데이터를 롤백할 수 없습니다.

통사론:

TRUNCATE TABLE 테이블 이름;

하나의 더미 테이블을 생성한 다음 삭제 작업을 수행하는 간단한 예를 들어 이해해 보겠습니다.

질문:

CREATE table Employee ( Emp_id int,  name VARCHAR(20),  country VARCHAR(20),  Salary INT); --insert the data in the Employee Table INSERT INTO Employee (Emp_id, name, country, Salary) values (101, 'Mohit', 'India', 60000),  (103, 'Anish', 'England', 70000),  (104, 'Shubham', 'France', 100000),  (102, 'Danish', 'Sweden', 40000),  (105, 'Vivek', 'Wales', 50000),  (106, 'Rohan', 'Scotland', 30000);  Select * from Employee ;>

산출

직원 테이블

직원 테이블

삭제 명령의 예:

이제 Emp_id 값이 106인 마지막 항목을 제거하는 쿼리를 만들어야 합니다.

질문:

Delete from Employee where Emp_id = 106;>

산출

산출

산출

TRUNCATE 명령의 예

이 경우 테이블 플레이어에서 모든 레코드를 완전히 제거하려면 truncate 명령을 사용하십시오.

질문:

TRUNCATE TABLE Employee;>

DELETE와 TRUNCATE의 차이점

삭제 자르기
DELETE 명령은 지정된 행(하나 이상)을 삭제하는 데 사용됩니다. 이 명령은 테이블에서 모든 행을 삭제하는 데 사용됩니다.
이것은 DML(데이터 조작 언어) 명령. 그것은 동안 DDL(데이터 정의어) 명령.
레코드를 필터링하기 위해 DELETE 명령에 WHERE 절이 있을 수 있습니다. TRUNCATE 명령에는 WHERE 절이 없을 수도 있습니다.
DELETE 명령에서는 튜플을 제거하기 전에 잠급니다. 이 명령을 실행하는 동안 테이블 데이터를 제거하기 전에 데이터 페이지가 잠깁니다.
DELETE 문은 한 번에 하나씩 행을 제거하고 삭제된 각 행에 대한 항목을 트랜잭션 로그에 기록합니다. TRUNCATE TABLE은 테이블 데이터를 저장하는 데 사용된 데이터 페이지를 할당 해제하여 데이터를 제거하고 페이지 할당 해제만 트랜잭션 로그에 기록합니다.
DELETE 명령은 TRUNCATE 명령보다 느립니다. TRUNCATE 명령은 DELETE 명령보다 빠릅니다.
삭제를 사용하려면 테이블에 대한 DELETE 권한이 필요합니다. 테이블에서 Truncate를 사용하려면 최소한 필요합니다. 바꾸다 테이블에 대한 권한.
더 적은 열의 ID는 테이블에서 DELETE 문을 사용한 후에도 ID를 유지합니다. 테이블에 ID 열이 포함된 경우 ID 열은 해당 시드 값으로 재설정됩니다.
삭제는 인덱싱된 뷰와 함께 사용할 수 있습니다. 인덱싱된 뷰에서는 자르기를 사용할 수 없습니다.
이 명령은 활성 트리거도 가능합니다. 이 명령은 활성 트리거를 실행하지 않습니다.
DELETE 문은 Truncate 문보다 더 많은 트랜잭션 공간을 차지합니다. Truncate 문은 DELETE보다 적은 트랜잭션 공간을 차지합니다.

삭제 작업은 롤백될 수 있습니다.

TRUNCATE는 암시적 커밋을 유발하므로 롤백할 수 없습니다.

삭제는 전체 테이블을 삭제하지 않습니다. 테이블에 대한 잠금을 획득하고 행 삭제를 시작합니다.

TRUNCATE는 먼저 테이블을 삭제한 다음 다시 생성합니다. 이는 개별 행을 삭제하는 것보다 빠릅니다.

결론

이 기사에서는 SQL 개발자는 DELETE 및 TRUNCATE 명령을 올바르게 사용하여 행을 적절하게 제거할 수 있습니다. TRUNCATE 명령은 테이블의 모든 레코드를 삭제하므로 주의해서 사용해야 합니다. 초보자는 삭제 명령과 자르기 명령의 차이점에 대한 이 튜토리얼의 설명을 통해 도움을 받을 수도 있습니다.

삭제:

  • 지난 6개월 동안 아무것도 구매하지 않은 모든 직원을 테이블에서 제거하려고 합니다.
  • 테이블에서 직원을 제거하려고 합니다.

잘라내기:

  • 테이블의 내용을 원래 상태로 복원하려고 합니다.
  • 데이터를 복원할 필요는 없습니다. 테이블에서 완전히 제거하고 싶을 뿐입니다.