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 之前,请慎重考虑。