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 命令。
- 一旦数据被删除,就无法恢复,因此强烈建议在删除数据之前进行备份。