25.8 MySQL 数据处理之增删改-4. 删除数据

时间:2024-03-26 19:13:11

在MySQL中, 使用DELETE语句来删除表格中的数据.
DELETE语句允许你基于某些条件来删除行, 或者如果你不提供任何条件, 它将删除表中的所有行.

以下是一些基本示例来说明如何使用DELETE语句:
* 1. 删除表中的所有行: DELETE FROM table_name;
     这将删除表中的所有数据, 并且这些数据是不可恢复的(除非你有备份).
     因此, 在执行此操作之前, 请确保你真的想删除所有数据.

* 2. 基于条件删除行: DELETE FROM table_name WHERE condition;
     如果只想删除满足某些条件的行, 可以在DELETE语句中使用WHERE子句.
     
     在某些情况下, 可能想在删除行之前查看它们.
     可以通过先执行一个SELECT语句来查看要删除的行, 然后再执行DELETE语句来实现.
-- 临时关闭commit自动提交事务:
mysql> SET autocommit = 0;
Query OK, 0 rows affected (0.00 sec)
-- 删除所有数据:
mysql> DELETE FROM emp2;
Query OK, 7 rows affected (0.01 sec)

-- 查看emp2表中的数据:
mysql> SELECT * FROM emp2;
Empty set (0.00 sec)

-- 回滚:
mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)

-- 查看emp2表中的数据:
mysql> SELECT * FROM emp2;
...
7 rows in set (0.00 sec)
-- 删除指定的数据:
-- 先查看一番需要删除的数据, 进行确定
mysql> SELECT * FROM emp2 WHERE id = 7;
+------+--------+------+
| id   | name   | age  |
+------+--------+------+
|    7 | Steven |   25 |
+------+--------+------+
1 row in set (0.00 sec)

-- 删除id为7的数据:
mysql> DELETE FROM emp2 WHERE id = 7;
Query OK, 1 row affected (0.00 sec)

-- 查看emp2表中的数据:
mysql> SELECT * FROM emp2;
+------+------+------+
| id   | name | age  |
+------+------+------+
|    1 | kid  |   18 |
|    2 | qq   |   18 |
|    3 | qz   |   18 |
|    3 | ez   | NULL |
|    5 | vn   |   19 |
|    6 | js   |   20 |
+------+------+------+
6 rows in set (0.00 sec)