MySQL删除语句DELETE

时间:2019-11-20 08:52:07  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用MySQL DELETE语句从单个表中删除数据。

MySQL DELETE语句简介

要从表中删除数据,请使用MySQL DELETE语句。
下面说明了DELETE语句的语法:

DELETE FROM table_name
WHERE condition;

在此语句中:

  • 首先,指定要从中删除数据的表。

  • 其次,使用条件指定要在WHERE子句中删除的行。
    DELETE语句将删除符合条件的行,

注意,WHERE子句是可选的。
如果省略WHERE子句,则DELETE语句将删除表中的所有行。

除了从表中删除数据之外,DELETE语句还返回已删除的行数。

要使用单个DELETE语句从多个表中删除数据,请使用DELETE JOIN语句,它将在下一个教程中介绍。

要删除表中的所有行而不需要知道删除了多少行,应使用TRUNCATE TABLE语句以获得更好的性能。

对于具有外键约束的表,当您从父表中删除行时,将使用ON DELETE CASCADE选项自动删除子表中的行。

MySQL DELETE示例

我们将使用示例数据库中的employee表进行演示。

请注意,一旦删除数据,它就消失了。
稍后,您将学习如何将DELETE语句放入事务中,以便可以将其回滚。

假设您要删除officeNumber为4的员工,请使用带有WHERE子句的DELETE语句,如以下查询所示:

DELETE FROM employees 
WHERE officeCode = 4;

要从employees表中删除所有行,请使用不带WHERE子句的DELETE语句,如下所示:

DELETE FROM employees;

雇员表中的所有行均已删除。

MySQL DELETE和LIMIT子句

如果要限制要删除的行数,请使用LIMIT子句,如下所示:

DELETE FROM table_table
LIMIT row_count;

请注意,表中的行顺序未指定,因此,当您使用LIMIT子句时,应始终使用ORDER BY子句。

DELETE FROM table_name
ORDER BY c1, c2, ...
LIMIT row_count;

考虑示例数据库中的以下客户表:

例如,以下语句按客户名称的字母顺序对客户进行排序,并删除前10个客户:

DELETE FROM customers
ORDER BY customerName
LIMIT 10;

同样,以下DELETE语句选择法国的客户,按信用额度从低到高排序,然后删除前5个客户:

DELETE FROM customers
WHERE country = 'France'
ORDER BY creditLimit
LIMIT 5;

在本教程中,您学习了如何使用MySQL DELETE语句从表中删除数据。