
DELETE 用法
DELETE 语句用于从表中删除满足条件的记录行。
单表删除
单表删除语法如下:
DELETE FROM table_name
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
DELETE 语句中的 WHERE 子句非常重要。除非特意,否则不要省略 WHERE 子句。它会
导致删除表中的所有数据。
根据条件删除数据
删除 empno 等于 7934 的行
DELETE FROM emp WHERE empno = 7934;
Query OK, 1 row affected (0.00 sec)
删除 job 等于 "业务员" 的行
DELETE FROM emp WHERE job = '业务员';
Query OK, 3 rows affected (0.01 sec)
限制删除的最大行数
考虑以下需求:
1. 删除工资最高的 2 名员工
2. 删除最晚入职的 2 名员工
这时,我们可以结合使用 ORDER BY 和 LIMIT 子句。
以下语句用来删除 emp 中 salary 最高的 2 行:
DELETE FROM emp ORDER BY salary DESC LIMIT 2;
Query OK, 2 rows affected (0.00 sec)
DELETE FROM emp ORDER BY hiredate DESC LIMIT 2;
Query OK, 2 rows affected (0.00 sec)
如果单独使用 LIMIT 子句,删除的顺序是不明确的。大多数情况下, DELETE 语句中的 LI
MIT 子句都应该和 ORDER BY 子句一起使用。
删除表中所有的行
如果不在 DELETE 语句中使用 WHERE 或者 LIMIT 子句,则会删除表中的所有行。
DELETE FROM emp;
Query OK, 6 rows affected (0.00 sec)
查看表中是否还有数据行:
SELECT COUNT(*) FROM emp;
+----------+
| COUNT(*) |
+----------+
| 0 |
评论