摘要: 在本教學中,您將學習如何使用 SQL DELETE
語句來刪除表格中的一或多列。
SQL DELETE 語句簡介
若要從表格中移除一或多列,您可以使用 DELETE
語句。DELETE
語句的一般語法如下:
DELETE
FROM
table_name
WHERE
condition;
Code language: SQL (Structured Query Language) (sql)
首先,提供您要移除列的表格名稱。
其次,在 WHERE
子句中指定條件,以識別需要刪除的列。如果您省略 WHERE
子句,則表格中的所有列都將被刪除。因此,您應該始終謹慎使用 DELETE
語句。
一般來說,DELETE
語句不像 SELECT
語句那樣返回結果集。但是,它確實會返回已刪除的列數。
SQL DELETE 語句範例
我們將使用 employees
和 dependents
表格來示範 DELETE
語句。

SQL DELETE 表格中的一列
假設員工 ID 為 105 的 David,想要從他的受撫養人清單中移除 Fred。我們知道 Fred
的受撫養人 ID 為 16,因此我們使用以下 DELETE
語句將 Fred 從 dependents
表格中移除。
DELETE FROM dependents
WHERE
dependent_id = 16;
Code language: SQL (Structured Query Language) (sql)
由於 WHERE
子句包含識別 Fred 的主鍵表達式,因此 DELETE
語句僅刪除一列。
您可以使用以下語句驗證受撫養人 ID 為 16 的列是否已被刪除
SELECT
COUNT(*)
FROM
dependents
WHERE
dependent_id = 16;
Code language: SQL (Structured Query Language) (sql)

SQL DELETE 多列範例
若要刪除表格中的多列,您可以使用 WHERE
子句中的條件來識別應刪除的列。例如,以下語句使用 IN
運算符,以包含員工 ID 為 100、101 或 102 的受撫養人。
DELETE FROM dependents
WHERE
employee_id IN (100 , 101, 102);
Code language: SQL (Structured Query Language) (sql)
SQL 從相關表格中刪除列
一位員工可能擁有零個或多個受撫養人,而一位受撫養人僅屬於一位員工。dependents
表格中的 employee_id
列連結到 employees
表格中的 employee_id
列。
employees
和 dependents
表格之間的關係是一對多。
從邏輯上講,受撫養人不能在沒有參考員工的情況下存在。換句話說,當您刪除一名員工時,其受撫養人也必須被刪除。
例如,要移除員工 ID 為 192 的員工及其所有受撫養人,您需要執行兩個 DELETE
語句,如下所示
DELETE
FROM
employees
WHERE
employee_id = 192;
DELETE
FROM
dependents
WHERE
employee_id = 192;
Code language: SQL (Structured Query Language) (sql)
大多數資料庫系統都支援外鍵約束,以便在刪除表格中的一列時,也會自動移除外鍵表格中的列。
因此,當執行以下 DELETE
語句時
DELETE
FROM
employees
WHERE
employee_id = 192;
Code language: SQL (Structured Query Language) (sql)
所有 employee_id
為 192 的列也會被自動移除。
若要更有效地移除表格中的所有列,您可以使用 TRUNCATE TABLE
語句,而不是使用沒有 WHERE
子句的 DELETE
語句。
現在,您應該了解 SQL DELETE
語句,以及如何應用它來移除表格中的一或多列。