Sự khác biệt giữa Xóa và Cắt ngắn

Sự khác biệt giữa Xóa và Cắt ngắn
Sự khác biệt giữa Xóa và Cắt ngắn

Video: Sự khác biệt giữa Xóa và Cắt ngắn

Video: Sự khác biệt giữa Xóa và Cắt ngắn
Video: Telnet SSH là gì? Hiểu rõ trong 3 phút | TING3S 2024, Tháng mười một
Anonim

Xóa so với Cắt bỏ

Cả hai lệnh SQL (Ngôn ngữ Truy vấn Cấu trúc), Xóa và Cắt ngắn đều được sử dụng để loại bỏ dữ liệu được lưu trữ trong các bảng trong cơ sở dữ liệu. Delete là một câu lệnh DML (Ngôn ngữ thao tác dữ liệu) và nó loại bỏ một số hoặc tất cả các hàng của bảng. Mệnh đề ‘Where’ được sử dụng để chỉ định các hàng bắt buộc phải xóa và nếu mệnh đề Where không được sử dụng với câu lệnh Delete, nó sẽ xóa tất cả dữ liệu trong bảng. Truncate là một câu lệnh DDL (Ngôn ngữ Định nghĩa Dữ liệu) và nó xóa toàn bộ dữ liệu khỏi bảng. Cả hai lệnh này đều không phá hủy cấu trúc bảng và các tham chiếu đến bảng và chỉ dữ liệu bị xóa khi cần thiết.

Xóa Tuyên bố

Câu lệnh Delete cho phép người dùng xóa dữ liệu khỏi bảng hiện có trong cơ sở dữ liệu dựa trên một điều kiện cụ thể và 'mệnh đề Where' được sử dụng để xác định điều kiện này. Lệnh Delete được gọi là lệnh thực thi đã ghi, vì nó chỉ xóa một hàng tại một thời điểm và giữ một mục nhập cho mỗi lần xóa hàng trong nhật ký giao dịch. Vì vậy, nguyên nhân này làm cho hoạt động chậm hơn. Delete là một câu lệnh DML và vì vậy nó không được tự động cam kết trong khi thực hiện lệnh. Do đó, thao tác Xóa có thể được quay lại để truy cập lại dữ liệu, nếu được yêu cầu. Sau khi thực hiện lệnh Delete, nó nên được cam kết hoặc quay trở lại để lưu các thay đổi vĩnh viễn. Câu lệnh Delete không xóa cấu trúc bảng của bảng khỏi cơ sở dữ liệu. Ngoài ra, nó không phân bổ không gian bộ nhớ được sử dụng bởi bảng.

Cú pháp điển hình cho lệnh Delete được nêu dưới đây.

XÓA TỪ

hoặc

XÓA TỪ ĐÂU

Tuyên bố Cắt ngắn

Câu lệnh Truncate xóa tất cả dữ liệu khỏi một bảng hiện có trong cơ sở dữ liệu, nhưng nó vẫn giữ nguyên cấu trúc bảng, cũng như các ràng buộc toàn vẹn, đặc quyền truy cập và các mối quan hệ với các bảng khác. Vì vậy, không bắt buộc phải định nghĩa lại bảng và có thể sử dụng cấu trúc bảng cũ, nếu người dùng muốn sử dụng lại bảng. Truncate xóa toàn bộ dữ liệu bằng cách phân bổ các trang dữ liệu được sử dụng để giữ dữ liệu và chỉ các phân bổ trang này được lưu trong nhật ký giao dịch. Do đó, lệnh truncate chỉ sử dụng ít tài nguyên hệ thống và nhật ký giao dịch hơn cho hoạt động, vì vậy nó nhanh hơn các lệnh liên quan khác. Truncate là một lệnh DDL, vì vậy nó sử dụng các cam kết tự động trước và sau khi thực hiện câu lệnh. Do đó, truncate không thể khôi phục dữ liệu theo bất kỳ cách nào. Nó giải phóng không gian bộ nhớ được sử dụng bởi bảng sau khi thực thi. Nhưng câu lệnh Truncate không thể được áp dụng trên các bảng được tham chiếu bởi các ràng buộc khóa ngoại.

Sau đây là cú pháp phổ biến cho câu lệnh Cắt ngắn.

BẢNG TRUNCATE

Sự khác biệt giữa Xóa và Cắt ngắn là gì?

1. Các lệnh Xóa và Cắt ngắn loại bỏ dữ liệu khỏi các bảng tồn tại trong cơ sở dữ liệu mà không làm hại đến cấu trúc bảng hoặc các tham chiếu khác đến bảng.

2. Tuy nhiên, lệnh Delete chỉ có thể được sử dụng để xóa các hàng cụ thể trong bảng bằng điều kiện có liên quan hoặc để xóa tất cả các hàng mà không có bất kỳ điều kiện nào, trong khi lệnh Truncate chỉ có thể được sử dụng để xóa toàn bộ dữ liệu trong bảng.

3. Delete là một lệnh DML và nó có thể khôi phục hoạt động nếu cần thiết, nhưng Truncate là lệnh DDL, vì vậy nó là một câu lệnh cam kết tự động và không thể quay lại theo bất kỳ cách nào. Vì vậy, điều quan trọng là phải sử dụng lệnh này một cách cẩn thận trong quản lý cơ sở dữ liệu.

4. Thao tác cắt ngắn tiêu thụ ít tài nguyên hệ thống và tài nguyên nhật ký giao dịch hơn so với thao tác Xóa, do đó, Cắt ngắn được coi là nhanh hơn Xóa.

5. Ngoài ra, Delete không phân bổ không gian được sử dụng bởi bảng, trong khi Truncate giải phóng không gian được sử dụng sau khi thực thi, vì vậy Delete không hiệu quả trong trường hợp xóa toàn bộ dữ liệu khỏi bảng cơ sở dữ liệu.

6. Tuy nhiên, Truncate không được phép sử dụng khi bảng được tham chiếu bởi ràng buộc khóa ngoại và trong trường hợp đó, lệnh Delete có thể được sử dụng thay vì Truncate.

7. Cuối cùng, cả hai lệnh này đều có ưu điểm và cũng có nhược điểm khi áp dụng chúng trong Hệ quản trị cơ sở dữ liệu và người dùng cần lưu ý sử dụng các lệnh này một cách hợp lý để đạt được kết quả tốt.

Đề xuất: