SQL 中使用 DELETE 语句删除数据:
DELETE FROM t
[WHERE conditions];
只有满足 WHERE 条件的数据才会被删除;如果省略 WHERE 条件,将会删除表中所有的数据。
以下语句将会删除员工表中的“张三”:
-- SELECT *
DELETE
FROM employee
WHERE emp_name = '张三';
Oracle 和 SQL Server 中可以省略 FROM 关键字。在删除数据之前,可以使用相应的 SELECT 语句查看要删除的数据。
在上一篇中,我们介绍了 TRUNCATE 语句;它可以用于快速删除表中的所有数据。这两种删除数据的方式存在一些区别:
- DELETE 语句通过 WHERE 条件从表中删除指定的数据;如果不指定条件将会删除所有的数据。DELETE 属于数据操作语言(DML),删除数据后,可以选择提交或者回滚。如果删除的数据较多时速度比较慢。
- TRUNCATE 语句用于快速删除表中的所有数据,并且释放表的存储空间。TRUNCATE 属于数据定义语言(DDL),操作默认提交无法回滚。TRUNCATE 相当于删除表并重建,通常执行速度很快。
另外,DROP TABLE 语句用于删除一个表,包括表中的数据。