콘텐츠
주요 차이점
DELETE 및 TRUNCATE는 SQL (Structured Query Language)에서 테이블에서 레코드 또는 데이터를 제거하는 데 사용되는 두 가지 용어입니다. 두 명령의 최종 결과는 동일하지만 이해해야 할 중요한 차이점이 있습니다. DELETE와 TRUNCATE의 주요 차이점은 DELTE는 DML (Data Manipulation Language) 명령이고 TRUNCATE는 DDL (Data Definition Language) 명령이라는 점입니다.
TRUNCATE 란 무엇입니까?
TRUNCATE도 기록 된 작업입니다. TRUNCATE TABLE 문은 할당 해제를위한 테이블 범위를 표시하는 SQL의 DDL 명령입니다. 이 작업의 결과로 테이블의 모든 데이터가 즉시 제거되며 일반적으로 많은 무결성 적용 메커니즘을 무시합니다. SQL : 2008 표준에 도입되었습니다. 'TRUNCATE TABLE mytable'문은 'WHERE'절이없는 'DELETE FROM mytable'문과 논리적으로 동일합니다. '테이블 테이블'은 테이블에서 사용하는 데이터 페이지를 할당 해제하여 테이블의 모든 데이터를 즉시 제거합니다. 이렇게하면 삭제를 기록하는 데 필요한 리소스 오버 헤드와 필요한 잠금 수가 줄어 듭니다. ‘TRUNCATE TABLE’문에‘WHERE’절을 전부 또는 전혀 지정할 수 없습니다.
삭제 란 무엇입니까?
데이터베이스 SQL에서 DELETE는 테이블에서 하나 이상의 레코드 또는 데이터를 제거하는 명령문을 의미합니다. 모든 레코드를 제거하는 조건을 사용하여 제거 / 삭제를 위해 서브 세트를 정의 할 수 있습니다. MySQL과 같은 일부 데이터베이스 관리 시스템 (DBM)은 다중 테이블 DELETE라고도하는 하나의 DELETE 문을 사용하여 다양한 테이블에서 행을 삭제할 수 있습니다. DELETE 문의 구문은 DELETE FROM입니다. table_name . 이제 'WHERE'조건과 일치하는 모든 행이 테이블에서 삭제됩니다. 문에서‘WHERE’절을 생략하면 테이블의 모든 행이 삭제됩니다. 따라서‘DELETE’문은주의해서 사용해야합니다. 또한‘DELETE’문은 행을 반환하지 않습니다. 즉, 결과 집합을 생성하지 않습니다.
주요 차이점
- DELETE는 DML (Data Manipulation Language) 명령이고 TRUNCATE는 DDL (Data Definition Language) 명령입니다.
- TRUNCATE는 DELETE에 비해 모든 데이터가 즉시 지워 지므로 훨씬 빠릅니다.
- 삭제시 '어디'조건이 필요합니다. . 문에서‘WHERE’절을 생략하면 테이블의 모든 행이 삭제됩니다. 그러나 'TRUNCATE TABLE'문에 'WHERE'절을 전부 또는 전혀 지정할 수 없습니다.
- DELETE는 테이블에서 일부 또는 모든 행을 제거하고 TRUNCATE는 모든 행을 제거합니다.
- DELETE는 테이블의 모든 DELETE 트리거를 발생시키는 반면 TRUNCATE 조작 중에는 트리거가 발생하지 않지만 개별 행에는 적용되지 않기 때문에 트리거가 발생하지 않습니다.
- 인덱싱 된 뷰에는 Delete를 사용할 수 있지만 TRUNCATE는 인덱싱 된 뷰에는 사용할 수 없습니다.
- DELETE는 행 잠금을 사용하여 실행되며 테이블의 각 행은 삭제를 위해 잠기고 TRUNCATE는 테이블 잠금을 사용하여 실행되며 모든 테이블은 모든 레코드를 제거하기 위해 잠 깁니다.