Câu lệnh DELETE FROM table WHERE condition xóa các hàng thỏa mãn điều kiện. Luôn dùng WHERE trừ khi muốn xóa toàn bảng.
Tạo bảng khách hàng có khóa chính
mysql> CREATE TABLE DemoTable (
-> CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> CustomerName VARCHAR(100),
-> CustomerAge INT
-> );
Query OK, 0 rows affected (1.30 sec)
mysql> INSERT INTO DemoTable(CustomerName, CustomerAge) VALUES('John', 33), ('Bob', 25), ('David', 28), ('Carol', 29);
Query OK, 4 rows affected (0.10 sec)
Xóa hàng David 28 tuổi
mysql> DELETE FROM DemoTable WHERE CustomerName = 'David' AND CustomerAge = 28; Query OK, 1 row affected (0.23 sec)
Kết quả còn lại:
+------------+--------------+-------------+ | CustomerId | CustomerName | CustomerAge | +------------+--------------+-------------+ | 1 | John | 33 | | 2 | Bob | 25 | | 4 | Carol | 29 | +------------+--------------+-------------+ 3 rows in set (0.00 sec)
Cảnh báo:
- Không có
WHERE→ xóa toàn bộ bảng - Không thể hoàn tác (trừ khi trong transaction chưa commit)
- Nên
SELECTtrước để xác nhận - Xóa nhiều bảng:
DELETE t1, t2 FROM t1 JOIN t2 ... WHERE ...