MySQL DELETE 查询:如何从表中删除一行

什么是 DELETE 查询?

MySQL 删除 命令用于从数据库表中删除不再需要的行。它从表中删除整行并返回已删除行的数量。Delete 命令可用于从数据库中删除临时或过时的数据。

删除查询 MySQL 可以在单个查询中删除表的多个行。这在从数据库表中删除大量行时非常有用。

一旦删除行 MySQL 行已被删除,无法恢复。因此,强烈建议在从数据库删除任何数据之前进行数据库备份。这可以让您恢复数据库并在以后需要时查看数据。

如何删除行 MySQL

删除行 MySQL,使用 DELETE FROM 语句:

DELETE FROM `table_name` [WHERE condition];

点击这里

  • DELETE FROM `table_name` 告诉 MySQL 服务器从表中删除行..
  • [WHERE 条件] 是可选的,用于放置过滤器,限制受 DELETE 语法影响的行数 MySQL 行查询。

如果 WHERE 子句 不用于 MySQL 删除查询,则给定表中的所有行将被删除。

示例 MySQL 删除查询

在我们详细讨论 SQL DELETE 语句之前,让我们先在电影表中插入一些示例数据以供使用。

INSERT INTO  `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);
INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);
INSERT INTO  movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);

执行上述脚本会将三 (3) 部电影添加到电影表中。在进一步学习课程之前,让我们先获取表中所有的电影。下面显示的脚本可以完成此操作。

SELECT * FROM `movies`;

执行上述脚本将得到以下结果。

movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

假设 Myflix 视频库不再希望向其成员出租《大独裁者》,他们希望将其从数据库中删除。其电影 ID 为 18,我们可以使用下面显示的脚本从表中删除行 MySQL 例。

DELETE FROM `movies` WHERE `movie_id` = 18;

在以下位置执行上述脚本 MySQL 工作台 针对 Myflix 从数据库表中删除 ID 为 18 的电影。

让我们看看电影表的当前状态。

SELECT * FROM `movies`;
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

注意:

  • 查询结果集中还未返回id为18的电影。
  • 您不能删除表格中的单个列。但可以删除整行。

假设我们有一个要删除的电影列表。我们可以使用 WHERE 子句和 IN。

DELETE FROM `movies` WHERE `movie_id`  IN (20,21);

执行上述脚本将从我们的电影表中删除 ID 为 20 和 21 的电影。

总结

  • 删除命令 MySQL,用于从表中删除不再需要的数据。
  • “WHERE 子句”用于限制 DELETE 查询影响的行数 MySQL 命令。
  • 一旦数据被删除,就无法恢复,因此强烈建议在删除数据之前进行备份。