DELETE 用於移除資料表中的資料列。操作不可逆,執行前務必確認 WHERE 條件正確,避免誤刪全表資料。
DELETE FROM table_name WHERE some_column = some_value;
WHERE 子句指定要刪除的資料列條件。+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘寶 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鳥教程 | https://www.runoob.com/ | 4689 | CN | | 4 | 微博 | https://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 6 | 百度 | https://www.baidu.com/ | 4 | CN | | 7 | stackoverflow| https://stackoverflow.com/ | 0 | IND | +----+--------------+---------------------------+-------+---------+
DELETE FROM Websites WHERE name = '百度' AND country = 'CN';
執行後讀取 Websites 表:

id=6 的百度資料已移除,其餘資料保留。
DELETE FROM table_name;
或
DELETE * FROM table_name;
TRUNCATE 會重置)。| 指令 | 刪除資料 | 保留結構 | 重置自增 | 觸發器 | 可回滾 | 速度 |
|---|---|---|---|---|---|---|
| DELETE | 是(可帶 WHERE) | 是 | 否 | 逐列觸發 | 是(交易中) | 慢 |
| TRUNCATE | 是(全表) | 是 | 是 | 不觸發 | 視資料庫而定 | 快 |
| DROP TABLE | 是(連結構) | 否 | N/A | 不觸發 | 視資料庫而定 | 最快 |
SELECT * FROM Websites WHERE name='百度' AND country='CN'; 確認目標資料無誤。BEGIN; DELETE ...; -- 確認無誤 COMMIT; -- 或 ROLLBACK;is_deleted 標記而非物理刪除。若被刪除資料被其他表外鍵參考,且約束為 RESTRICT(預設),刪除會失敗。選項包括:
ON DELETE CASCADE:級聯刪除關聯資料。ON DELETE SET NULL:關聯欄位設為 NULL。