Xóa so với cắt ngắn
Cả hai lệnh SQL (Language Query Language), Delete và Truncate đề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. Xóa 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 đề vị trí' đượ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ó sẽ xóa toàn bộ dữ liệu khỏi bảng. Cả hai lệnh này không phá hủy cấu trúc bảng và các tham chiếu đến bảng và chỉ xóa dữ liệu khi cần.
Xóa Tuyên bố
Xóa câu lệnh cho phép người dùng xóa dữ liệu khỏi một bảng hiện có trong cơ sở dữ liệu dựa trên một điều kiện được chỉ định và 'mệnh đề Where' được sử dụng để xác định điều kiện này. Lệnh xóa được gọi là thực thi được ghi, bởi 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, điều này gây ra hoạt động chậm hơn. Xóa là một câu lệnh DML và do đó 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 khôi phục để truy cập lại dữ liệu, nếu cần. Sau khi thực hiện lệnh Xóa, cần phải cam kết hoặc khôi phục lại để lưu các thay đổi vĩnh viễn. Xóa câu lệnh 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 Xóa được nêu dưới đây.
XÓA TỪ
hoặc là
XÓA TỪ ĐÂU
Tuyên bố cắt ngắn
Câu lệnh rút gọn sẽ 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ó 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 xác định lại bảng và cấu trúc bảng cũ có thể được sử dụng, 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 sắp xếp lại các trang dữ liệu được sử dụng để giữ dữ liệu và chỉ những giao dịch trang này được giữ trong nhật ký giao dịch. Do đó, lệnh cắt ngắn chỉ sử dụng ít tài nguyên nhật ký giao dịch và hệ thống 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 đó, cắt ngắn không thể khôi phục lại 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 hiện. Nhưng câu lệnh rút gọn 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 Truncate.
BẢNG TRUNCATE
Sự khác biệt giữa Xóa và Cắt bỏ là gì? 1. Lệnh Xóa và Cắt bỏ dữ liệu khỏi các bảng hiện có trong cơ sở dữ liệu mà không làm tổn 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 Xóa chỉ có thể được sử dụng để xóa các hàng cụ thể trong một bảng bằng một đ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. Xóa là một lệnh DML và nó có thể khôi phục hoạt động nếu cần, nhưng Truncate là lệnh DDL, do đó, nó là một câu lệnh cam kết tự động và không thể được khôi phục theo bất kỳ cách nào. Vì vậy, điều quan trọng là 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. Hoạt động cắt ngắn tiêu tốn ít tài nguyên hệ thống và tài nguyên nhật ký giao dịch hơn hoạt động Xóa, do đó, Cắt ngắn được coi là nhanh hơn Xóa. 5. Ngoài ra, Xóa 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 hiện, do đó Xóa 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 một 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ệ thống quản lý cơ sở dữ liệu và người dùng nên lưu ý sử dụng các lệnh này một cách thích hợp để đạt được kết quả tốt.
|