Câu lệnh DELETE
được sử dụng để xoá các hàng trong một bảng.
Cú pháp của SQL DELETE
:
DELETE FROM ten_bang
WHERE mot_so_cot=mot_so_gia_tri;
Lưu ý mệnh đề WHERE trong câu lệnh SQL DELETE
Mệnh đề WHERE
chỉ định bản ghi hoặc các bản ghi phải được xoá. Nếu bạn bỏ qua mệnh đề WHERE
, tất cả các bản ghi sẽ bị xoá!
Cơ sở dữ liệu Demo
Trong khoá này chúng ta sẽ sử dụng bảng cơ sở dữ liệu mẫu Northwind được nhiều người biết đến.
Dưới đây là một lựa chọn từ bảng “Customers”:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Ví dụ về SQL DELETE
Giả sử chúng ta muốn xoá khách hàng “Alfreds Futterkiste” từ bảng “Customers”.
Chúng ta sử dụng câu lệnh SQL sau:
Ví dụ:
DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';
Bảng “Customers” giờ sẽ trông giống như thế này:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Xoá tất cả dữ liệu
Bạn có thể xoá tất cả các hàng trong một bảng mà không xoá bảng. Điều này có nghĩa là cấu trúc bảng, các thuộc tính và các chỉ số sẽ vẫn còn nguyên:
DELETE FROM table_name;
hoặc
DELETE * FROM table_name;
Note: Phải cẩn thận khi muốn xoá các bản ghi. Bạn không thể undo (kiểu Ctrl + Z) câu lệnh này đâu! Vì vậy trong thực tế với các dữ liệu người ta hiếm khi xoá mà thường thêm một trường để đánh dấu nó có cần dùng hay không và giúp lấy lại dữ liệu khi cần thiết phải xem xét.