在本教學中,您將學習如何使用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語句