MySQL 删除

MySQL 删除语句可帮助我们从表中删除不需要的行或数据。您可以使用此删除命令删除临时表和永久表。

DELETE 命令可删除表中的单行、多行或所有记录。它是从数据库表中删除不必要数据最强大的命令之一。

MySQL 删除语法

DELETE 命令的基本语法如下所示。

DELETE FROM `Schema_Name`.`Table_Name`
[WHERE Conditions]; — Optional

我将使用下表来演示此删除命令。

Employee Table Rows

从命令提示符删除 MySQL 数据

在此示例中,我们将使用命令提示符或终端从表中删除记录。

DELETE FROM sqltest.newemployees
WHERE EmpID = 1

注意:如果未使用 WHERE 子句,则此命令将删除表中的所有记录。因此,请始终使用 WHERE 子句来限制要删除的记录。

删除单行

在此示例中,我们使用 WHERE 子句删除了 employeeId = 4 的记录。

DELETE FROM newemployees
WHERE EmpID = 4;
MySQL Delete Command 3

让我们看看剩余的数据。

View rows 4

删除多行

在这里,我们正在删除部门 ID = 1 的记录。如您所见,有许多行与此部门 ID 相关联。让我们看看其中有多少被删除了。

DELETE FROM newemployees
WHERE DeptID = 1;
Delete multiple rows 5

从下面的屏幕截图可以看出,它删除了所有部门 ID = 1 的员工。

Check Table 6

MySQL 删除带有多重条件

我将向您展示如何使用 WHERE 子句中的多个条件来删除记录。以下查询删除了 FirstName 为 John 且 Sales 小于 1000 的行。

DELETE FROM newemployees
WHERE FirstName = 'John' AND Sales < 1000;
Delete multiple condition 7

此表中的剩余数据是:

View Rows 8

MySQL 删除限制

通过使用 ORDER BY 子句LIMIT 子句,您可以根据需要删除前五行或后十行。在这里,我们删除了销售额最高的前两条记录。

DELETE FROM newemployees
ORDER BY Sales DESC LIMIT 2;
Delete Limit 9

新员工表中的剩余数据。

View Table 10

删除带有 NULL 的行

此查询删除部门 ID 为 NULL 的行。您可以使用 IS NOT NULL 尝试删除 ID 不为 NULL 的行。

DELETE FROM newemployees
WHERE DeptID IS NULL;

删除 3 条记录后,员工表。

删除所有行

如果您忘记包含 WHERE 子句,它将删除表中的所有记录。

DELETE FROM newemployees;

您可以在此处看到一个空表。

Empty Table Without any Records 14

从 Workbench 执行

如果您可以访问 MySQL Workbench,您可以选择要执行删除操作的表。接下来,选择“发送到 SQL 编辑器”,然后选择下面显示的选项。

它会生成以下 MySQL 代码。您可以根据需要修改 WHERE 子句。

DELETE FROM `sqltest`.`department4`
WHERE <{where_expression}>;