SQL - 刪除表格:初學者指南

你好,未來的數據庫大師!今天,我們將要進入 SQL 的世界,並學習它最強大(有時候也會讓人害怕)的命令之一:DELETE。別擔心——我會一直在這裡指導你,用許多範例和解釋帶你走過每一步。在本教程結束時,你將會像專業人士一樣刪除表格!

SQL - Delete Table

什麼是 SQL DELETE?

在我們深入細節之前,讓我們先了解 SQL DELETE 實際上是做什麼的。簡單來說,這是一個允許我們從數據庫表中刪除數據的命令。把它想成是從紙張上擦除東西的數字化版本——不過在這個情況下,我們的紙張是一個數據庫表。

SQL DELETE TABLE 語句

從表中刪除數據的基本語法非常直觀:

DELETE FROM table_name;

我知道你現在在想什麼:"就這樣?" 嗯,是也不是。這個命令確實很簡單,但它同時也非常強大——並且潛在危險。讓我解釋為什麼。

如果你在不加任何條件的情況下運行這個命令,它將會刪除指定表中的所有行。這就像是在你的筆記本上使用橡皮擦而不是擦除一行。因此,在使用這個命令時,我們需要非常小心。

讓我們看一個範例:

DELETE FROM students;

這個命令將會刪除名為 "students" 的表中的所有記錄。咻!全部消失了。這就是為什麼我們通常想要更具體地指定我們要刪除的內容,這帶我們進入下一個主題。

SQL DELETE TABLE 使用 WHERE 子句

為了避免意外地整個刪除表格,我們通常使用 WHERE 子句來指定我們想要刪除哪些行。語法如下:

DELETE FROM table_name
WHERE condition;

假設我們有一個 "students" 表,我們想要刪除名為 John Doe 的學生:

DELETE FROM students
WHERE name = 'John Doe';

這個命令只會刪除名稱為 'John Doe' 的行。這樣安全多了,對吧?

這裡有另一個範例:

DELETE FROM products
WHERE price < 10;

這將會刪除所有價格低於 10 的產品。也許我們正在進行清倉銷售,想要刪除所有的低成本商品!

基於多個條件刪除行

有時候,我們需要更加具體。我們可以在 WHERE 子句中使用 AND 或 OR 運算符來使用多個條件。這是怎麼操作的:

DELETE FROM table_name
WHERE condition1 AND/OR condition2;

讓我們看一個真實世界的範例:

DELETE FROM employees
WHERE department = 'Marketing' AND years_of_service < 2;

這個命令將會刪除市場部門中服務年限少於 2 年的所有員工。也許我們正在進行組織重組,並且需要讓我們最新的市場營銷招聘離職(雖然我希望這不是情況)!

我們也可以使用 OR 來指定替代的條件:

DELETE FROM inventory
WHERE quantity = 0 OR expiry_date < '2023-06-01';

這將會從我們的庫存中刪除那些已經缺貨或過期的商品。為我們的數據庫進行春季大掃除!

刪除表中的所有記錄

記得我們第一個例子中刪除所有記錄的情況嗎?有時候我們真的想這麼做。但有一個比使用不带 WHERE 子句的 DELETE 更有效的方法,那就是 TRUNCATE 命令:

TRUNCATE TABLE table_name;

這個命令會刪除表中的所有數據,但比 DELETE 快,因為它不會為每個刪除的行在事務日志中生成一個條目。

這裡有一個範例:

TRUNCATE TABLE temp_calculations;

這可能對於存儲臨時計算的表很有用,如果你想要定期清空它。

方法總結

這裡是我們討論過的所有方法的總結,以一個整潔的表格呈現:

方法 語法 使用場景
刪除所有行 DELETE FROM table_name; 當你想要移除所有數據但保留表結構時
刪除特定行 DELETE FROM table_name WHERE condition; 當你想要基於條件移除特定行時
基於多個條件刪除 DELETE FROM table_name WHERE condition1 AND/OR condition2; 當你需要為刪除指定多個條件時
截斷表 TRUNCATE TABLE table_name; 當你想要快速從表中刪除所有數據時

結論

就是这样!現在你已經擁有了安全有效地從 SQL 表中刪除數據的知識。記住,能力越大,責任越大。在運行 DELETE 命令之前,總是仔細檢查你的 WHERE 子句,並在進行重大更改之前備份你的數據是一個好習慣。

SQL 最初可能會讓人覺得望而卻步,但隨著練習,你會發現它是一個管理數據的非常強大的工具。持續實驗,持續學習,不久之後,你會成為數據庫的大師!

快樂編程,願你的刪除總是出於本意!

Credits: Image by storyset