MySQL-从表中删除
时间:2020-02-23 14:41:00 来源:igfitidea点击:
在本教程中,我们将学习从MySQL中的表中删除数据。
我们使用DELETE FROM table_name
从表中删除数据。
删除语法
DELETE FROM table_name WHERE condition;
使用主键删除单行
在以下示例中,我们将删除具有注释ID 10的注释。
删除之前:
mysql> SELECT * FROM comments; +-----------+------------+---------------------+---------------------+---------------------+ | commentid | employeeid | commentbody | lastmodified | created | +-----------+------------+---------------------+---------------------+---------------------+ | 1 | e03 | Awesome | 2016-01-01 02:03:04 | 2016-01-01 02:03:04 | | 2 | e03 | Hello World | 2016-01-02 01:02:03 | 2016-01-02 01:02:03 | | 3 | e01 | Happy | 2016-01-02 01:04:03 | 2016-01-02 01:04:03 | | 4 | e04 | This is my comment. | 2016-01-01 02:03:04 | 2016-01-01 02:03:04 | | 5 | e01 | Keep coding.... | 2016-04-04 03:02:01 | 2016-05-04 03:02:01 | | 6 | e04 | Hello | 2016-01-01 04:03:04 | 2016-01-01 04:03:04 | | 7 | e01 | ABC... | 2016-04-04 04:04:01 | 2016-05-04 04:02:01 | | 8 | e05 | Andriod | 2016-01-01 04:03:04 | 2016-01-01 04:03:04 | | 9 | e03 | Apple | 2016-04-04 04:04:01 | 2016-05-04 04:02:01 | | 10 | e01 | Super | 2016-01-01 04:03:04 | 2016-01-01 04:03:04 | | 11 | e02 | Awesome | 2016-04-04 04:04:01 | 2016-05-04 04:02:01 | +-----------+------------+---------------------+---------------------+---------------------+ 11 rows in set (0.00 sec)
删除查询:
mysql> DELETE FROM comments WHERE commentid = 10; Query OK, 1 row affected (0.00 sec)
删除后:
mysql> SELECT * FROM comments; +-----------+------------+---------------------+---------------------+---------------------+ | commentid | employeeid | commentbody | lastmodified | created | +-----------+------------+---------------------+---------------------+---------------------+ | 1 | e03 | Awesome | 2016-01-01 02:03:04 | 2016-01-01 02:03:04 | | 2 | e03 | Hello World | 2016-01-02 01:02:03 | 2016-01-02 01:02:03 | | 3 | e01 | Happy | 2016-01-02 01:04:03 | 2016-01-02 01:04:03 | | 4 | e04 | This is my comment. | 2016-01-01 02:03:04 | 2016-01-01 02:03:04 | | 5 | e01 | Keep coding.... | 2016-04-04 03:02:01 | 2016-05-04 03:02:01 | | 6 | e04 | Hello | 2016-01-01 04:03:04 | 2016-01-01 04:03:04 | | 7 | e01 | ABC... | 2016-04-04 04:04:01 | 2016-05-04 04:02:01 | | 8 | e05 | Andriod | 2016-01-01 04:03:04 | 2016-01-01 04:03:04 | | 9 | e03 | Apple | 2016-04-04 04:04:01 | 2016-05-04 04:02:01 | | 11 | e02 | Awesome | 2016-04-04 04:04:01 | 2016-05-04 04:02:01 | +-----------+------------+---------------------+---------------------+---------------------+ 10 rows in set (0.00 sec)
使用WHERE子句删除多行
在下面的示例中,我们将删除员工编号'e03'的所有注释。
mysql> DELETE FROM comments WHERE employeeid = 'e03'; Query OK, 3 rows affected (0.00 sec)
删除后:
mysql> SELECT * FROM comments; +-----------+------------+---------------------+---------------------+---------------------+ | commentid | employeeid | commentbody | lastmodified | created | +-----------+------------+---------------------+---------------------+---------------------+ | 3 | e01 | Happy | 2016-01-02 01:04:03 | 2016-01-02 01:04:03 | | 4 | e04 | This is my comment. | 2016-01-01 02:03:04 | 2016-01-01 02:03:04 | | 5 | e01 | Keep coding.... | 2016-04-04 03:02:01 | 2016-05-04 03:02:01 | | 6 | e04 | Hello | 2016-01-01 04:03:04 | 2016-01-01 04:03:04 | | 7 | e01 | ABC... | 2016-04-04 04:04:01 | 2016-05-04 04:02:01 | | 8 | e05 | Andriod | 2016-01-01 04:03:04 | 2016-01-01 04:03:04 | | 11 | e02 | Awesome | 2016-04-04 04:04:01 | 2016-05-04 04:02:01 | +-----------+------------+---------------------+---------------------+---------------------+ 7 rows in set (0.00 sec)
不带WHERE子句的删除
在下面的示例中,我们正在运行没有任何WHERE子句的DELETE查询,因此,它将导致所有行的删除。
如果没有WHERE条件,请勿运行DELETE查询。
您最终将删除不需要的内容。
mysql> DELETE FROM comments; Query OK, 7 rows affected (0.00 sec)
删除后:
mysql> SELECT * FROM comments; Empty set (0.00 sec)