## 数据操作 - 删除
当需要从表中删除数据时,可使用 DELETE 语句。 MySQL DELETE 语句允许使用单个 DELETE 语句从一个表或多个表中删除记录。
DELETE 语句语法:
DELETE FROM table_name
[WHERE conditions][ORDER BY...][LIMIT rows]
**注意:** WHERE 子句是非常重要的,如何没有 WHERE 子句,就会删除表中的所有行。
### 从一个表中删除数据
删除办公室编号是 1004 的所有员工信息,如下查询所示:
DELETE FROM employee WHERE office_id = 1004;
删除员工编号最大的记录信息,如下所示:
DELETE FROM employee ORDER BY employee_id DESC LIMIT 1;
### 从多个表中删除数据
要从多个表中删除记录,可以使用以下 DELETE 语句之一:
DELETE table_1,table_2,...
FROM table-refs
[WHERE conditions]
DELETE FROM table_1,table_2,...
USING table-refs
[WHER Econditions]
假设有一个办公室要关闭,要删除与该办公室相关的所有员工记录,查询如下:
使用第一种形式的 DELETE 语法:
```
DELETE employee, office
FROM employee, office
WHERE
employee.office_id = office.office_id
AND office.office_id = 1;
```
使用第二种形式的 DELETE 语法:
```
DELETE FROM employee, office
USING employee, office
WHERE
employee.office_id = office.office_id
AND office.office_id = 1;
```
### 清空表数据
MySQL 提供了一个快速清空表数据的 TRUNCATE TABLE 语句, 语法如下:
TRUNCATE TABLE tbl_name
清空员工数据表,查询如下:
TRUNCATE TABLE employee;
参考链接:
- [多表连接删除](http://www.studymysql.com/mysql/delete-join.html)
- [级联删除数据](http://www.studymysql.com/mysql/on-delete-cascade.html)
- [delete-truncate-drop比较分析](http://www.cnblogs.com/zjfjava/p/5991613.html)