在SQL中,删除表中的行数据主要有以下几种方法:
最基本的删除行方法是使用DELETE语句:
DELETE FROM 表名 WHERE 条件;
示例:
DELETE FROM employees WHERE id = 100;
DELETE FROM products WHERE stock_quantity = 0;
删除表中所有行(不能带WHERE条件):
TRUNCATE TABLE 表名;
与DELETE的区别: - TRUNCATE更快,因为它不记录每一行的删除操作 - TRUNCATE会重置自增计数器 - TRUNCATE不能用于有外键约束的表 - TRUNCATE不能回滚(在某些数据库中)
在多表关联情况下删除数据:
DELETE t1 FROM 表1 t1
JOIN 表2 t2 ON t1.id = t2.id
WHERE t2.condition = 'value';
DELETE FROM 表名
WHERE id IN (SELECT id FROM 其他表 WHERE 条件);
DELETE FROM 表名 WHERE 条件 LIMIT 数量;
-- 先查询确认要删除的数据
SELECT * FROM 表名 WHERE 条件;
-- 然后执行删除(建议在事务中)
BEGIN TRANSACTION;
DELETE FROM 表名 WHERE 条件;
-- 确认无误后提交
COMMIT;
-- 或发现问题后回滚
-- ROLLBACK;