삭제 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개월 동안 아무것도 구매하지 않은 모든 직원을 테이블에서 제거하려고 합니다.
- 테이블에서 직원을 제거하려고 합니다.
잘라내기:
- 테이블의 내용을 원래 상태로 복원하려고 합니다.
- 데이터를 복원할 필요는 없습니다. 테이블에서 완전히 제거하고 싶을 뿐입니다.