
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表
- SQL - 建立表
- SQL - 顯示錶
- SQL - 重命名錶
- SQL - 截斷表
- SQL - 克隆表
- SQL - 臨時表
- SQL - 修改表
- SQL - 刪除表
- SQL - 刪除表
- SQL - 約束
- SQL 查詢
- SQL - 插入查詢
- SQL - 選擇查詢
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查詢
- SQL - 刪除查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布林 (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY, ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - 刪除連線
- SQL - 更新連線
- SQL - 左連線 vs 右連線
- SQL - UNION vs JOIN
- SQL 金鑰
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 組合鍵
- SQL - 備選鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - MIN & MAX
- SQL - NULL 函式
- SQL - 檢查約束
- SQL - 預設約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - 刪除表
SQL DELETE 是資料操縱語言 (DML) 的一個命令,因此它不會刪除或修改表結構,而只會刪除表中包含的資料。因此,在您從表中刪除資料後,表中定義的任何約束、索引或觸發器仍然存在。
SQL DELETE TABLE 語句
SQL DELETE TABLE 語句用於從資料庫中的表中刪除現有記錄。如果您只想從表中刪除特定數量的行,可以使用 DELETE 語句和 WHERE 子句。如果省略 WHERE 子句,則將刪除表中的所有行。SQL DELETE 語句一次只能操作一個表。
語法
以下是 SQL 中使用 SQL DELETE 命令的基本語法:
DELETE FROM table_name;
帶有 WHERE 子句的 SQL DELETE TABLE
我們可以使用 SQL DELETE 語句根據單個條件使用 WHERE 子句從表中刪除特定行。
語法
以下是根據單個條件刪除特定行的語法:
DELETE FROM table_name WHERE condition;
示例
假設我們建立了一個名為 CUSTOMERS 的表,其中包含客戶的個人詳細資訊,包括他們的姓名、年齡、地址和工資等。
CREATE TABLE CUSTOMERS ( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
現在使用 INSERT 語句向此表中插入值,如下所示:
INSERT INTO CUSTOMERS VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ), (2, 'Khilan', 25, 'Delhi', 1500.00 ), (3, 'Kaushik', 23, 'Kota', 2000.00 ), (4, 'Chaitali', 25, 'Mumbai', 6500.00 ), (5, 'Hardik', 27, 'Bhopal', 8500.00 ), (6, 'Komal', 22, 'Hyderabad', 4500.00 ), (7, 'Muffy', 24, 'Indore', 10000.00 );
如果您使用 SELECT * FROM CUSTOMERS 語句檢索上面建立的表的內容,您將獲得以下輸出:
ID | 姓名 | 年齡 | 地址 | 工資 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
現在,讓我們嘗試刪除所有名為“Hardik”的客戶,如下面的查詢所示:
DELETE FROM CUSTOMERS WHERE NAME='Hardik';
輸出
我們得到以下結果。我們可以觀察到已刪除 1 行。
Query OK, 1 row affected (0.05 sec)
驗證
現在,如果您使用 SELECT * FROM CUSTOMERS 命令檢索 CUSTOMERS 表的內容,您將獲得以下輸出:
ID | 姓名 | 年齡 | 地址 | 工資 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
基於多個條件刪除行
我們還可以使用 SQL DELETE TABLE 語句根據多個條件使用 WHERE 子句從表中刪除特定行。當我們想要刪除滿足特定條件的表中的行子集時,這很有用。
當使用多個條件時,我們可以使用 AND、OR 和 NOT 等比較運算子來細化我們的條件。這樣,只有滿足條件的行才會被刪除。
語法
以下是根據多個條件刪除特定行的基本語法,可以使用 AND 或 OR 運算子連線這些條件:
DELETE FROM table_name WHERE condition1 AND condition2 OR ... conditionN;
這裡,table_name 是我們要從中刪除行的表的名稱,condition1 到 conditionN 是必須滿足才能刪除行的條件。可以使用 AND 或 OR 運算子將條件連線在一起。
示例
在下面的查詢中,我們嘗試刪除所有姓名為“Komal”或地址為“Mumbai”的客戶:
DELETE FROM CUSTOMERS WHERE NAME='Komal' OR ADDRESS='Mumbai';
輸出
我們得到以下結果。我們可以觀察到已刪除 2 行。
Query OK, 2 rows affected (0.03 sec)
驗證
現在,如果您使用 SELECT * FROM CUSTOMERS 命令檢索 CUSTOMERS 表的內容,您將獲得以下輸出:
ID | 姓名 | 年齡 | 地址 | 工資 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
刪除表中所有記錄
我們可以使用沒有 WHERE 子句的 SQL DELETE TABLE 語句來刪除 SQL 表中的所有記錄。此語句將從指定的表中刪除所有行,有效地將表重置為其原始狀態(僅包含結構及其約束)。
但是,需要注意的是,此操作無法撤消,表中的所有資料都將被永久刪除。
示例
在這裡,我們嘗試從 CUSTOMERS 表中刪除所有記錄:
DELETE FROM CUSTOMERS;
輸出
以下是執行上述查詢後產生的結果:
Query OK, 4 rows affected (0.13 sec)
驗證
現在,如果您使用 SELECT * FROM CUSTOMERS 語句檢索 CUSTOMERS 表的內容,您將獲得以下結果:
Empty set (0.00 sec)