## 數據操作 - 刪除
當需要從表中刪除數據時,可使用 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)