MySQL DELETE语句

MySQL DELETE语句

MySQL DELETE语句用于从MySQL表中删除不再需要的记录。 这个MySQL查询从表中删除一整行,并生成删除行数的计数。 它还允许我们在单个查询中删除表中的多条记录,这在删除大量记录时非常有用。通过使用delete语句,我们还可以根据条件删除数据。

使用这个查询删除记录后,我们将无法恢复它。 因此,在从表中删除任何记录之前,建议您 创建数据库的备份。 数据库备份允许我们在将来需要时恢复数据。

语法:

以下是演示如何使用DELETE语句的语法:

DELETE FROM table_name WHERE condition;

在上面的语句中,我们首先需要指定要删除数据的表名。第二,我们必须在WHERE子句中指定删除记录的条件,这是可选的。如果我们在语句中省略WHERE子句,这个查询将从数据库表中删除所有记录。

如果我们想使用一个单独的DELETE查询从多个表中删除记录,我们必须在DELETE语句中添加JOIN子句。

如果我们想删除表中的所有记录而不知道删除行的数量,我们必须使用TRUNCATE TABLE语句,它具有更好的性能。

让我们通过各种示例来了解MySQL中的DELETE语句的工作原理。

MySQL DELETE语句示例

在这里,我们将使用”Employees”表和”Payment”表来演示DELETE语句。假设Employees和Payment表包含以下数据:

MySQL DELETE语句

如果要删除一个员工, emp_id为107 , 我们应该使用带有WHERE子句的DELETE语句。查看下面的查询:

mysql> DELETE FROM Employees WHERE emp_id=107;

执行查询后,将返回如下图像的输出。一旦记录被删除,使用SELECT语句来验证表格:

MySQL DELETE语句

如果我们想要从表中删除所有记录,使用DELETE语句时不需要使用WHERE子句。请看下面的代码和输出:

MySQL DELETE语句

在上面的输出中,我们可以看到在移除了所有行之后,Employees表将变为空。这意味着选择的表中没有可用的记录。

MySQL DELETE和LIMIT子句

MySQL Limit子句用于限制从结果集返回的行数,而不是从表中获取所有记录。有时我们想要限制从表中删除的行数;在这种情况下,我们将使用 LIMIT 子句,如下所示:

DELETE FROM table_name
WHERE condition 
ORDER BY colm1, colm2, ...
LIMIT row_count;

注意,MySQL表中的行的顺序是不确定的。因此,使用LIMIT子句时,我们应该始终使用 ORDER BY 子句。

例如 ,下面的查询首先按照员工的姓名字母顺序进行排序,并从表中删除前三个员工:

mysql> DELETE FROM Employees ORDER BY name LIMIT 3;

它将产生以下输出:

MySQL DELETE语句

MySQL DELETE和JOIN子句

JOIN子句用于在MySQL中添加两个或多个表。每当我们想要在单个查询中从多个表中删除记录时,我们将使用DELETE语句添加JOIN子句。请参见下面的查询:

mysql> DELETE Employees, Payment FROM Employees 
INNER JOIN Payment    
ON Employees.emp_id = Payment.emp_id    
WHERE Employees.emp_id = 102;

输出:

执行后,我们将看到以下图像输出:

MySQL DELETE语句

要阅读关于使用JOIN子句的DELETE语句的更多信息, 点击这里 。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程