SQL Delete
1. 定義
維基百科:
Delete
指令用于刪除數(shù)據(jù)庫中的數(shù)據(jù)。
慕課解釋:Delete,傳聞中增刪查改中的
刪
,是刪除數(shù)據(jù)庫數(shù)據(jù)的主要途徑。
2. 前言
本小節(jié),我們將一起學(xué)習(xí) SQL Delete
。
絕大多數(shù)情況下,我們不會刪除所有數(shù)據(jù),因此 Delete 需要搭配 Where 一起使用,本小節(jié)將以刪除數(shù)據(jù)
的多少來介紹 Delete 的用法。
本小節(jié)測試數(shù)據(jù)如下,請先在數(shù)據(jù)庫中執(zhí)行:
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 刪除的單位是行
,即一條記錄,不能用于刪除某個(gè)字段。
Delete 語法如下:
DELETE FROM [table_name] WHERE [col] = [val];
4. 刪除一行
4.1 例1 刪除 pedro 用戶
請書寫 SQL 語句,刪除imooc_user
表中用戶名為pedro
的用戶。
分析:
目前imooc_user
表中只存在一個(gè)名為pedro
用戶,搭配 Where 進(jìn)行刪除,篩選條件是用戶名,即username=pedro
。
語句:
整理可得語句如下:
DELETE FROM imooc_user WHERE username='pedro';
結(jié)果如下:
+----------+-----+
| username | age |
+----------+-----+
| mike | 18 |
| jerry | 18 |
+----------+-----+
5. 刪除多行
Delete 不僅可以刪除一條記錄,還可以一次性刪除多條記錄,刪除多少取決于 Where 后的條件子句。
5.1 例2 刪除多個(gè)用戶
請書寫 SQL 語句,刪除imooc_user
表中年齡為18
的用戶。
分析:
目前imooc_user
表中存在多個(gè)年齡為18
用戶,搭配 Where 進(jìn)行刪除,篩選條件是年齡,即age=18
。
語句:
整理可得語句如下:
DELETE FROM imooc_user WHERE age=18;
結(jié)果如下:
+----------+-----+
| username | age |
+----------+-----+
6. 小結(jié)
- 切勿直接使用
DELETE FROM imooc_user;
這樣的 SQL 語句,會直接刪除掉所有的數(shù)據(jù)。 - 刪除數(shù)據(jù)是一個(gè)
危險(xiǎn)操作
,在使用 Delete 之前,請慎重考慮。