資料庫

MySQL/MariaDB 資料庫 DELETE 刪除資料指令用法教學

介紹如何在 MySQL/MariaDB 資料庫中使用 DELETE 指令刪除指定的資料。

建立測試用資料

為了示範 DELETE 指令的使用方式,我們先建立測試用的 products 資料表:

-- 建立 products 資料表
CREATE TABLE products (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(255),
  price INT UNSIGNED,
  inventory INT UNSIGNED,
  last_update DATE,
  PRIMARY KEY (id)
);

再插入一些測試用的資料:

-- 新增資料
INSERT INTO products (name, price, inventory, last_update) VALUES
  ("A031", 320, 9, "2015-10-14"),
  ("C001", 420, 0, "2013-03-08"),
  ("B021", 280, 3, "2013-12-02"),
  ("Y158", 690, 4, "2015-11-21"),
  ("A202", 195, 1, "2019-02-23"),
  ("D022", 540, 5, "2017-03-19");

顯示測試用的資料:

-- 顯示所有資料
SELECT * FROM products;
+----+------+-------+-----------+-------------+
| id | name | price | inventory | last_update |
+----+------+-------+-----------+-------------+
|  1 | A031 |   320 |         9 | 2015-10-14  |
|  2 | C001 |   420 |         0 | 2013-03-08  |
|  3 | B021 |   280 |         3 | 2013-12-02  |
|  4 | Y158 |   690 |         4 | 2015-11-21  |
|  5 | A202 |   195 |         1 | 2019-02-23  |
|  6 | D022 |   540 |         5 | 2017-03-19  |
+----+------+-------+-----------+-------------+

DELETE 刪除資料

DELETE 可以用來刪除資料表中指定的資料,例如刪除 id5 的那一筆資料:

-- 刪除 id 為 5 的資料
DELETE FROM products WHERE id = 5;

接著查看刪除後的結果:

-- 顯示所有資料
SELECT * FROM products;
+----+------+-------+-----------+-------------+
| id | name | price | inventory | last_update |
+----+------+-------+-----------+-------------+
|  1 | A031 |   320 |         9 | 2015-10-14  |
|  2 | C001 |   420 |         0 | 2013-03-08  |
|  3 | B021 |   280 |         3 | 2013-12-02  |
|  4 | Y158 |   690 |         4 | 2015-11-21  |
|  6 | D022 |   540 |         5 | 2017-03-19  |
+----+------+-------+-----------+-------------+

刪除多筆資料

若要一次刪除多筆資料,可以使用 IN 清單條件指定多個 id

-- 刪除 id 為 1, 4 的資料
DELETE FROM products WHERE id IN (1, 4);

-- 顯示所有資料
SELECT * FROM products;
+----+------+-------+-----------+-------------+
| id | name | price | inventory | last_update |
+----+------+-------+-----------+-------------+
|  2 | C001 |   420 |         0 | 2013-03-08  |
|  3 | B021 |   280 |         3 | 2013-12-02  |
|  6 | D022 |   540 |         5 | 2017-03-19  |
+----+------+-------+-----------+-------------+

刪除時間區間內的資料

若要刪除指定時間區間內的資料,則可使用 BETWEEN 區間條件

-- 刪除 last_update 介於 2013-01-01 與 2013-12-31 的資料
DELETE FROM products WHERE last_update BETWEEN "2013-01-01" AND "2013-12-31";

-- 顯示所有資料
SELECT * FROM products;
+----+------+-------+-----------+-------------+
| id | name | price | inventory | last_update |
+----+------+-------+-----------+-------------+
|  6 | D022 |   540 |         5 | 2017-03-19  |
+----+------+-------+-----------+-------------+

清空資料表

若不加任何的資料篩選條件,DELETE 就會將整張資料表內所有的資料都刪除:

-- 清空 products 資料表
DELETE FROM products;
Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago