Home » Database Testing » DELETE và TRUNCATE trong SQL: Khi nào nên sử dụng cái nào?

DELETE và TRUNCATE trong SQL: Khi nào nên sử dụng cái nào?

Update: 30/09/2024

Chào các bạn, tôi là “Tôi đi tét dạo”, và hôm nay chúng ta sẽ cùng nhau khám phá một chủ đề rất thú vị trong SQL: DELETETRUNCATE. Bạn có biết rằng cả hai câu lệnh này đều được sử dụng để xóa dữ liệu, nhưng chúng lại có những cách hoạt động và mục đích rất khác nhau không? Nếu bạn là một người mới bắt đầu tìm hiểu về databaseSQL, thì bài viết này chính là dành cho bạn! Hãy chuẩn bị để “xóa bỏ” những hiểu lầm về hai lệnh này nhé!

1. DELETE trong SQL: Xóa một cách tinh tế

DELETE là một câu lệnh SQL được sử dụng để xóa các bản ghi từ một bảng trong cơ sở dữ liệu. Bạn có thể sử dụng DELETE để xóa một bản ghi cụ thể hoặc nhiều bản ghi theo điều kiện mà bạn đặt ra.

1.1. Cú pháp cơ bản của DELETE

DELETE FROM tên_bảng WHERE điều_kiện;

Ví dụ:

DELETE FROM nhân_vien WHERE id = 5;

Lệnh trên sẽ xóa bản ghi của nhân viên có ID là 5.

1.2. Điểm cần lưu ý

  • Có điều kiện: Khi bạn sử dụng DELETE, hãy chắc chắn rằng bạn đã chỉ định điều kiện (WHERE) nếu không, tất cả các bản ghi trong bảng sẽ bị xóa sạch!
  • Ghi lại lịch sử: Các bản ghi bị xóa có thể được ghi lại trong nhật ký giao dịch, do đó bạn có thể khôi phục lại nếu cần.

2. TRUNCATE trong SQL: Xóa sạch nhanh chóng

TRUNCATE là một câu lệnh SQL mạnh mẽ hơn, được sử dụng để xóa tất cả các bản ghi trong một bảng mà không cần điều kiện. Khi bạn sử dụng TRUNCATE, bảng vẫn còn tồn tại, nhưng tất cả dữ liệu trong bảng sẽ bị xóa.

2.1. Cú pháp cơ bản của TRUNCATE

TRUNCATE TABLE tên_bảng;

Ví dụ:

TRUNCATE TABLE nhân_vien;

Lệnh này sẽ xóa tất cả các bản ghi trong bảng nhân viên mà không cần điều kiện.

2.2. Điểm cần lưu ý

  • Không có điều kiện: TRUNCATE xóa tất cả dữ liệu mà không thể khôi phục lại qua nhật ký giao dịch.
  • Hiệu suất cao hơn: TRUNCATE thường nhanh hơn DELETE vì nó không ghi lại từng bản ghi bị xóa vào nhật ký giao dịch.

3. So sánh DELETE vs TRUNCATE

Hãy cùng xem xét một số điểm khác biệt giữa DELETE và TRUNCATE nhé:

Tiêu chíDELETETRUNCATE
Chức năngXóa bản ghi theo điều kiệnXóa tất cả bản ghi
Khôi phụcCó thể khôi phục qua nhật ký giao dịchKhông thể khôi phục
Hiệu suấtChậm hơn, đặc biệt với nhiều bản ghiNhanh hơn nhiều
Sử dụng trong ràng buộcCó thể xóa với ràng buộc khóa ngoạiKhông thể nếu có ràng buộc khóa ngoại

4. Khi nào nên sử dụng cái nào?

DELETE nên được sử dụng khi bạn muốn xóa một số bản ghi cụ thể trong bảng hoặc khi bạn cần ghi lại các thay đổi trong nhật ký giao dịch. Ngược lại, TRUNCATE là lựa chọn lý tưởng khi bạn cần xóa toàn bộ dữ liệu trong bảng một cách nhanh chóng và hiệu quả, và không cần khôi phục lại.

Vậy bạn có đang bối rối giữa hai lệnh này không? Bạn đã từng gặp tình huống nào mà bạn không biết nên dùng DELETE hay TRUNCATE chưa? Hãy chia sẻ với tôi ở phần bình luận nhé!

Tổng kết:

Trong bài viết hôm nay, chúng ta đã cùng nhau tìm hiểu về hai lệnh SQL cực kỳ hữu ích: DELETETRUNCATE. Mỗi lệnh đều có những ưu điểm và nhược điểm riêng, và việc hiểu rõ cách thức hoạt động của chúng sẽ giúp bạn quản lý dữ liệu một cách hiệu quả hơn.

Hy vọng bài viết này đã giúp bạn có thêm cái nhìn sâu sắc về cách sử dụng DELETE và TRUNCATE. Hãy theo dõi tôi trong những bài viết tiếp theo, nơi chúng ta sẽ cùng nhau khám phá “Cách sử dụng JOIN trong SQL” nhé!