数据库 / 14 SQL Delete

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