1. 程式人生 > SQL入門教學 >14 SQL Delete

14 SQL Delete

1. 定義

維基百科:Delete指令用於刪除資料庫中的資料。

解釋:Delete,傳聞中增刪查改中的,是刪除資料庫資料的主要途徑。

2. 前言

本小節,我們將一起學習 SQL Delete

絕大多數情況下,我們不會刪除所有資料,因此 Delete 需要搭配 Where 一起使用,本小節將以刪除資料
的多少來介紹 Delete 的用法。

本小節測試資料如下,請先在資料庫中執行:

DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
  username varchar(20),
  age int
);
INSERT INTO
imooc_user(username,age) VALUES('pedro', 23), ('mike', 18), ('jerry', 18);

3. 語法

Delete 刪除的單位是,即一條記錄,不能用於刪除某個欄位。

Delete 語法如下:

DELETE FROM [table_name] WHERE [col] = [val];

4. 刪除一行

4.1 例1 刪除 pedro 使用者

請書寫 SQL 語句,刪除imooc_user表中使用者名稱為pedro的使用者。

分析:

目前imooc_user表中只存在一個名為pedro使用者,搭配 Where 進行刪除,篩選條件是使用者名稱,即username=pedro

語句

整理可得語句如下:

DELETE FROM imooc_user WHERE username='pedro';

結果如下:

+----------+-----+
| username | age |
+----------+-----+
| mike     | 18  |
| jerry    | 18  |
+----------+-----+

5. 刪除多行

Delete 不僅可以刪除一條記錄,還可以一次性刪除多條記錄,刪除多少取決於 Where 後的條件子句。

5.1 例2 刪除多個使用者

請書寫 SQL 語句,刪除imooc_user表中年齡為18的使用者。

分析:

目前imooc_user表中存在多個年齡為18使用者,搭配 Where 進行刪除,篩選條件是年齡,即age=18

語句

整理可得語句如下:

DELETE FROM imooc_user WHERE age=18;

結果如下:

+----------+-----+
| username | age |
+----------+-----+

6. 小結

  • 切勿直接使用DELETE FROM imooc_user;這樣的 SQL 語句,會直接刪除掉所有的資料。
  • 刪除資料是一個危險操作,在使用 Delete 之前,請慎重考慮。