Trong thực tế, không phải lúc nào dữ liệu cũng được giữ lại mãi mãi. Sẽ có lúc bạn cần xóa một bản ghi không còn đúng, không còn cần thiết, hoặc bị nhập sai. Câu lệnh DELETE
trong SQL được thiết kế để làm việc đó – loại bỏ dữ liệu khỏi bảng một cách chính xác và kiểm soát. Trong bài học này, bạn sẽ học cách sử dụng DELETE
để xóa dữ liệu, cách kết hợp với mệnh đề WHERE
để tránh xóa nhầm toàn bộ bảng, và những lưu ý khi làm việc với thao tác có tính “không thể hoàn tác” này.
Câu lệnh DELETE – Cú pháp cơ bản
Cú pháp tổng quát của DELETE
là:
DELETE FROM ten_bang
WHERE dieu_kien;
Lưu ý quan trọng: Nếu bạn quên
WHERE
, toàn bộ dữ liệu trong bảng đó sẽ bị xóa!
Ví dụ minh họa
Giả sử chúng ta có bảng students
với dữ liệu như sau:
id | name | grade |
---|---|---|
1 | An Nguyễn | 9 |
2 | Bình Trần | 10 |
3 | Châu Lê | 9 |
Xóa học sinh có id = 2:
DELETE FROM students
WHERE id = 2;
Sau khi thực hiện, bảng còn lại:
id | name | grade |
---|---|---|
1 | An Nguyễn | 9 |
3 | Châu Lê | 9 |
Một số ví dụ khác
Xóa tất cả học sinh lớp 9:
DELETE FROM students
WHERE grade = 9;
Xóa toàn bộ bảng (không khuyến khích):
DELETE FROM students;
Tác động rất lớn! Hãy cẩn thận vì nó xóa toàn bộ dữ liệu mà không cần điều kiện.
Phân biệt DELETE và TRUNCATE
Tiêu chí | DELETE | TRUNCATE |
---|---|---|
Có WHERE | Có thể dùng | Không hỗ trợ |
Khôi phục dữ liệu | Có thể nếu dùng trong giao dịch | Không thể |
Tốc độ | Chậm hơn | Nhanh hơn (xóa toàn bộ bảng) |
Ứng dụng | Xóa dữ liệu có điều kiện | Xóa toàn bộ bảng nhanh chóng |
Lưu ý an toàn khi dùng DELETE
- Luôn dùng mệnh đề WHERE trừ khi bạn chắc chắn muốn xóa toàn bộ.
- Sao lưu dữ liệu trước khi xóa số lượng lớn.
- Thử chạy SELECT với điều kiện trước để xem mình sẽ xóa gì.
- Sử dụng giao dịch (transaction) nếu hệ quản trị hỗ trợ.
Ví dụ:
START TRANSACTION;
DELETE FROM students WHERE grade = 9;
ROLLBACK; -- hoặc COMMIT nếu bạn chắc chắn
Tổng kết
Câu lệnh DELETE
là công cụ mạnh mẽ để quản lý dữ liệu, nhưng cũng tiềm ẩn nhiều rủi ro nếu không sử dụng cẩn thận. Khi đã nắm rõ cú pháp, kết hợp linh hoạt với WHERE
, bạn sẽ có khả năng kiểm soát dữ liệu một cách chính xác và an toàn. Trong bài tiếp theo, chúng ta sẽ cùng bước sang chương mới để tìm hiểu cách thiết kế cơ sở dữ liệu hiệu quả với các ràng buộc và mối quan hệ giữa các bảng.
Thảo luận