DELETE
DELETE FROM 按条件删除表中的行。和 UPDATE 一样,WHERE 是你的安全带——忘了系就可能删掉整张表的数据。
DELETE 是行级操作,每删除一行都会记录事务日志,因此可以回滚(在事务中)。DELETE 和 DROP TABLE 的区别需要牢记:DELETE 只删数据,表结构还在;DROP TABLE 连表结构带数据一块儿永久抹掉。
过期数据清理、用户注销、测试数据重置都用 DELETE。飞翔科技的订单表里,旧订单可以归档后删掉。永远先 SELECT 后 DELETE——用同样的 WHERE 先查一遍确认"这些就是我打算删的行",再换成 DELETE 执行。
标准写法:
DELETE FROM 表名
WHERE 条件;
以飞翔科技为例:
-- 清理 2018 年之前的旧订单
DELETE FROM orders
WHERE order_year < 2018;
-- 飞翔小店下架某件商品
DELETE FROM products
WHERE product_id = 10088 AND shop_name = '飞翔小店';
-- 清理过期租房合同记录
DELETE FROM rental_contracts
WHERE contract_end_date < '2024-01-01';
三个例子的 WHERE 条件都很明确:按年份、按 ID+店铺、按日期。这是一个花十秒钟却能避免灾难的好习惯。