Lênh DELETE trong SQL
Chúng ta đã nói đên lệnh DELETE trong phần theo tác với bảng dữ liệu trong SQL. Ở bài học này ta sẽ đi sâu hơn vào cách sử dụng câu lệnh này.
Lệnh DELETE được sử dụng để xóa các hàng khỏi bảng. Thông thường lệnh DELETE có thể xóa một hoặc nhiều bản ghi ra khỏi bảng.
Cú pháp của lệnh DELETE:
DELETE FROM ten_bang [WHERE dieu_kien];
Mệnh đề WHERE có thể có hoặc không có trong lệnh DELETE, nếu mệnh đề WHERE không tồn tại trong lệnh DELETE, có nghĩa là toàn bộ bảng sẽ bị xóa.
Ví dụ cách dùng lệnh DELETE trong SQL
Xét bảng dữ liệu Employee sau:
ID | Name | City | Salary |
1 | Nguyen Van Thanh | Ha Noi | 2000 |
2 | Le Van Minh | Ha Noi | 1200 |
3 | Hoang Van Tu | Ha Noi | 900 |
4 | Le Trong Quan | Ha Noi | 1100 |
Lệnh xóa bảng có sử dụng điều kiện WHERE:
DELETE FROM Employees WHERE ID=1;
Sau khi chạy câu lệnh, kết quả thu được là:
Nếu không sử dụng mệnh đề điều kiện WHERE, kết quả thu được sẽ là một bảng trống (Tuy nhiên cấu trúc bảng vẫn được giữ lại):
DELETE FROM Employees;
Các trường hợp mà ta có thể sử dụng lệnh DELETE bao gồm:
Xóa bảng
Tuy nhiên vẫn giữ lại cấu trúc bảng, bao gồm tên và kiểu dữ liệu của các cột.
Xóa một số hàng nhất định
Ta có thể xóa một số hàng nhất định bằng cách chỉ rõ ra hàng cần xóa bằng các điều kiện trong mệnh đề WHERE.
Xóa tất cả các hàng
Để xóa tất cả các hàng ta sử dụng lệnh “DELETE FROM <tên bảng>;” (không dùng mệnh đề WHERE trong câu lệnh này).
Xóa các hàng bị lặp
Để xóa các hàng bị trùng lặp ta có nhiều kỹ thuật, nhưng có một cách rất đơn gian để làm việc này là dựa vào lệnh “SELECT DISTINCT“. Lệnh này sẽ trả về kết quả bảng dữ liệu với dữ liệu là các bản ghi không bị trùng lặp. Các bạn có thể tìm hiểu thêm ở đây.