在本教學中,您將學習如何使用SQL DELETE語句刪除表中的一行或多行。
1. SQL DELETE語句簡介
要從表中刪除一行或多行,請使用DELETE語句。 DELETE語句的一般語法如下:
DELETE
FROM
table_name
WHERE
condition;
- 首先,提供要刪除行的表名稱(
table_name)。 - 其次,在
WHERE子句中指定條件以標識需要刪除的行記錄。 如果省略WHERE子句,則將刪除表中的所有行記錄。 因此,應始終謹慎使用DELETE語句。
一般來說,DELETE語句不會將結果集。 但是,它只返回已刪除的行數。
2. SQL DELETE語句示例
我們將使用employees和dependents表來演示DELETE語句。

2. SQL刪除表中的一行
使用以下DELETE語句從dependents表中刪除ID為:16的行記錄。
DELETE FROM dependents
WHERE
dependent_id = 16;
由於WHERE子句包含主鍵運算式,因此DELETE語句只刪除一行。可以使用以下語句驗證是否已刪除dependents中ID為:16的行記錄:
SELECT
COUNT(*)
FROM
dependents
WHERE
dependent_id = 16;
3. SQL DELETE多行示例
要刪除表中的多個行記錄,請使用WHERE子句中的條件來選擇要刪除的行記錄。 例如,以下語句使用IN運算符來刪除dependents表中id為100,101或102的資訊。
DELETE FROM dependents
WHERE
employee_id IN (100 , 101, 102);
4. SQL DELETE來自相關表的行
一名員工可能有零個或多個家屬,而一個受撫養人只屬於一名員工。 dependents表中的employee_id列鏈接到employees表中的employee_id列。
員工與家屬表之間的關係是一對多的。
從邏輯上講,如果不引用員工,就不能存在依賴關係。 換句話說,當刪除員工資訊時,他/她的家屬也必須要刪除。
例如,要刪除員工ID為199和所有員工的依賴項,需要執行兩個DELETE語句,如下所示:
DELETE
FROM
employees
WHERE
employee_id = 199;
DELETE
FROM
dependents
WHERE
employee_id = 199;
大多數資料庫系統都支持外鍵約束,因此當刪除表中的一行時,外鍵表中的行也會自動刪除。
因此,執行以下DELETE語句時:
DELETE
FROM
employees
WHERE
employee_id = 199;
在執行上面語句後,employee_id為199的所有行也會自動刪除。
要更有效地從表中刪除所有行,可以使用TRUNCATE TABLE語句,而不是使用不帶WHERE子句的DELETE語句。
通過上面的示例和學習,您應該瞭解SQL DELETE語句用法,以及如何應用它來刪除表中的一行或多行。
上一篇:
SQL更新日期數據
下一篇:
SQL Select語句
