MySQL删除语句DELETE
简介:在本教程中,您将学习如何使用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语句从表中删除数据。