SQL DELETE

摘要:在本教程中,您將學習如何使用 SQL DELETE 語句從表中刪除一行或多行資料。

SQL DELETE 語句簡介 #

在 SQL 中,DELETE 語句允許您根據條件從表中刪除一行或多行。

這是 DELETE 語句的語法:

DELETE FROM table_name
WHERE condition;Code language: SQL (Structured Query Language) (sql)

在此語法中:

  • 首先,提供要從中刪除行的表的名稱。
  • 其次,在 WHERE 子句中指定一個條件,以確定要刪除的行。

WHERE 子句是可選的。如果省略 WHERE 子句,DELETE 語句將刪除表中的所有行。

DELETE FROM table_name;

通常,DELETE 語句會向客戶端返回被刪除的行數。

一些資料庫系統(如 PostgreSQL)會向客戶端返回一個包含已刪除行的結果集。

如果您從一個帶有 ON DELETE CASCADE 選項的外部索引鍵約束的表中刪除資料,DELETE 語句也會刪除相關表中的行。

SQL DELETE 語句示例 #

我們將使用 employeesdependents 表來演示 DELETE 語句。

employees_dependents_tables

從表中刪除一行 #

假設員工 ID 為 105 的 David 想要從他的家屬列表中移除 Fred

我們知道 Fred 的家屬 ID 是 16,所以我們使用以下 DELETE 語句從 dependents 表中刪除 Fred

DELETE FROM dependents
WHERE dependent_id = 16;Code language: SQL (Structured Query Language) (sql)

試一試

由於 WHERE 子句包含了唯一標識 Fred主鍵表示式,DELETE 語句從 dependents 表中刪除了一行。

要驗證家屬 ID 為 16 的行已被刪除,您可以查詢 dependents 表的資料。

SELECT
  *
FROM
  dependents
WHERE
  dependent_id = 16;Code language: SQL (Structured Query Language) (sql)

試一試

該查詢返回一個空結果集,意味著 dependent_id 為 16 的行已被刪除。

從表中刪除多行 #

要從表中刪除多行,您可以在 WHERE 子句中使用條件來指定要刪除的行。

例如,以下語句在 DELETE 語句的 WHERE 子句中使用 IN 運算子來刪除家屬 ID 為 1、2 和 3 的行。

DELETE FROM dependents
WHERE dependent_id IN (1, 2, 3);Code language: SQL (Structured Query Language) (sql)

試一試

從表中刪除所有行 #

以下示例使用不帶 WHERE 子句的 DELETE 語句來刪除 dependents 表中的所有行。

DELETE FROM dependents;

試一試

要更高效地刪除表中的所有行,您應該使用 TRUNCATE TABLE 語句,而不是使用不帶 WHERE 子句的 DELETE 語句。

摘要 #

  • 使用 DELETE 語句從表中刪除一行或多行。
  • 使用不帶 WHERE 子句的 DELETE 語句從表中刪除所有行。

測驗 #

資料庫 #

本教程是否有幫助?
© .