MySQL DELETE
简介:在本教程中,您将学习如何使用MySQL DELETE语句从单个表中删除数据。
MySQL DELETE语句简介
要从表中删除数据,请使用MySQLDELETE
语句。以下说明了DELETE
语句的语法:
DELETE FROM table_name WHERE condition;在这个声明中:
- 首先,指定从中删除数据的表。
- 其次,使用条件指定
WHERE
子句中要删除的行。如果行符合条件,则将删除行。
注意:
除了从表中删除数据外,WHERE
子句是可选项。如果省略WHERE
子句,DELETE
语句将删除表中的所有行。
DELETE
语句还返回已删除的行数。
要使用单个DELETE
语句从多个表中删除数据,请使用DELETE JOIN
我们将在下一个教程中介绍的语句。
要删除表中的所有行而不需要知道删除了多少行,您应使用 TRUNCATE TABLE
语句来获得更好的性能。
对于具有外键约束的表,当从父表中删除行时,将使用ON DELETE CASCADE
选项自动删除子表中的行。
MySQL的DELETE例子
我们将使用示例数据库中的employees
表进行演示。
+----------------+ | employees | +----------------+ | employeeNumber | | lastName | | firstName | | extension | | email | | officeCode | | reportsTo | | jobTitle | +----------------+ 8 rows in set (0.04 sec)
注意:一旦删除数据,它就会消失。因此,您应在执行下一节中的语句之前备份数据库
假设您要删除其DELETE
。officeNumber
= 4的员工,请使用DELETE
带有WHERE
子句的语句,如以下查询所示:
DELETE FROM employees WHERE officeCode = 4;要删除
employees
表中的所有行,请使用DELETE
不带WHERE
子句的语句,如下所示:
DELETE FROM employees;
employees
表中的所有行都已删除。
MySQL DELETE和LIMIT子句
如果要限制要删除的行数,请使用以下LIMIT
子句:
DELETE FROM table LIMIT row_count;
注意:表中的行顺序是未指定的,因此,在使用
LIMIT
子句时,应始终使用ORDER BY
子句。
DELETE FROM table_name ORDER BY c1, c2, ... LIMIT row_count;请考虑示例数据库中的以下
customers
表:
+------------------------+ | customers | +------------------------+ | customerNumber | | customerName | | contactLastName | | contactFirstName | | phone | | addressLine1 | | addressLine2 | | city | | state | | postalCode | | country | | salesRepEmployeeNumber | | creditLimit | +------------------------+ 13 rows in set (0.02 sec)例如,以下语句按字母顺序按客户名称对客户进行排序,并删除前10个客户:
DELETE FROM customers ORDER BY customerName LIMIT 10;同样,以下
DELETE
语句选择客户France
,按信用额度从低到高对其进行排序,并删除前5个客户:
DELETE FROM customers WHERE country = 'France' ORDER BY creditLimit LIMIT 5;在本教程中,您学习了如何使用MySQL
DELETE
语句从表中删除数据。