Kiến thức cơ bản về TRUNCATE DELETE DROP trong SQL
Trong SQL, có ba lệnh thường được sử dụng để thao tác với dữ liệu trong bảng: TRUNCATE, DELETE và DROP. Mặc dù cả ba đều có chức năng xóa dữ liệu, nhưng chúng có những điểm khác biệt quan trọng về cách thức hoạt động, khả năng phục hồi và tác động đến cấu trúc bảng.
1. TRUNCATE TABLE
Lệnh TRUNCATE TABLE được sử dụng để xóa toàn bộ dữ liệu từ bảng chỉ định.
TRUNCATE table_name: Xóa tất cả dữ liệu trong bảng table_name. Ví dụ:
* Khác biệt quan trọng:
- TRUNCATE xóa toàn bộ dữ liệu từ bảng, nhưng không ghi vào transaction log, do đó, không thể rollback.
- TRUNCATE nhanh hơn DELETE vì không cần ghi log cho mỗi hàng được xóa.
- TRUNCATE giữ nguyên cấu trúc của bảng.
2. DELETE FROM
Lệnh DELETE FROM được sử dụng để xóa các hàng từ bảng dựa trên điều kiện cụ thể.
DELETE FROM table_name WHERE condition: Xóa dữ liệu trong bảng table_name thỏa mãn điều kiện Orders. Ví dụ:
* Khác biệt quan trọng:
- DELETE xóa các hàng dựa trên điều kiện được chỉ định và ghi vào transaction log, có thể rollback.
- DELETE chỉ xóa dữ liệu và giữ lại cấu trúc của bảng.
3. DROP TABLE hoặc DROP DATABASE
Lệnh DROP TABLE được sử dụng để xóa một bảng cụ thể khỏi cơ sở dữ liệu, trong khi DROP DATABASE được sử dụng để xóa một cơ sở dữ liệu hoàn toàn.
DROP TABLE table_name: Xóa hoàn toàn bảng table_name. Ví dụ:
hoặc
* Khác biệt quan trọng:
- DROP xóa cả dữ liệu và cấu trúc của bảng hoặc cơ sở dữ liệu, không thể rollback.
- Việc sử dụng DROP đòi hỏi cẩn thận, vì nó xóa hoàn toàn các đối tượng mà không có cơ hội phục hồi.
Bảng thông tin so sánh chi tiết
Tính năng | TRUNCATE | DELETE | DROP |
Loại bỏ dữ liệu | Xóa tất cả dữ liệu trong bảng | Xóa dữ liệu dựa trên điều kiện | Xóa hoàn toàn bảng (bao gồm cả cấu trúc và dữ liệu) |
Khả năng phục hồi | Không thể phục hồi dữ liệu đã xóa | Có thể phục hồi dữ liệu đã xóa (nếu có bản sao lưu hoặc sử dụng lệnh ROLLBACK ) |
Không thể phục hồi bảng đã xóa |
Tốc độ | Nhanh hơn DELETE vì không cần ghi nhật ký giao dịch | Chậm hơn TRUNCATE vì cần ghi nhật ký giao dịch | Nhanh hơn TRUNCATE vì chỉ cần xóa cấu trúc bảng |
Tác động đến Identity/Auto Increment | Đặt lại giá trị Identity/Auto Increment về 1 | Không ảnh hưởng đến giá trị Identity/Auto Increment | Xóa giá trị Identity/Auto Increment |
Sử dụng | Thường dùng để xóa nhanh dữ liệu tạm thời hoặc trước khi tải dữ liệu mới | Thường dùng để xóa dữ liệu cụ thể theo điều kiện | Thường dùng để xóa bảng không còn sử dụng |
Một số lưu ý khi sử dụng
- Cẩn thận khi sử dụng lệnh TRUNCATE vì không thể phục hồi dữ liệu đã xóa.
- Nên sử dụng lệnh DELETE để xóa dữ liệu cụ thể theo điều kiện.
- Nên sử dụng lệnh DROP khi muốn xóa hoàn toàn bảng không còn sử dụng.
Việc lựa chọn giữa TRUNCATE, DELETE và DROP phụ thuộc vào yêu cầu cụ thể của quản trị cơ sở dữ liệu và tác động mà chúng ta mong đợi đối với dữ liệu và cấu trúc cơ sở dữ liệu. Qua đây chúng ta cũng hiểu rõ hơn sự khác biệt giữa TRUNCATE, DELETE và DROP là điều cần thiết để sử dụng chúng một cách hiệu quả và an toàn.
Lựa chọn lệnh phù hợp sẽ giúp chúng ta thao tác dữ liệu chính xác và tránh những rủi ro không mong muốn. Bài viết này hy vọng đã cung cấp cho mọi người một số thông tin hữu ích về sự khác biệt giữa các lệnh TRUNCATE, DELETE và DROP trong SQL.
P.A Việt Nam cung cấp đa dạng các Plan Hosting đáp ứng yêu cầu của khách hàng
Hosting Phổ Thông
Hosting Chất Lượng Cao
Hosting WordPress
Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/