SQL DELETE语句:删除数据

 
SQL DELETE 语句用于删除数据表中现有的记录。DELETE 命令通常和 WHERE 子句一起使用,用以删除满足条件的记录;如果不使用 WHERE 子句,那么表中所有的记录都将被删除,这往往不是我们所期望的。

语法

带有 WHERE 子句的 DELETE 命令的基本语法如下:

DELETE FROM table_name
WHERE [condition];

你可以使用 AND 或者 OR 运算符连接多个条件。

示例

现有一个包含如下记录的 website 表:
+----+----------------+----------------------------+-----+-------+---------+---------+
| id | name           | url                        | age | alexa | uv      | country |
+----+----------------+----------------------------+-----+-------+---------+---------+
|  1 | 百度           | https://www.baidu.com/     |  21 |     4 |  5010.5 | CN      |
|  2 | 淘宝           | https://www.taobao.com/    |  17 |     8 | 3996.75 | CN      |
|  3 | C语言中文网    | http://c.biancheng.net/    |  12 |  7923 |   11.62 | CN      |
|  4 | Google         | https://www.google.com/    |  23 |     1 |   36474 | US      |
|  5 | GitHub         | https://github.com/        |  13 |    95 |   216.3 | US      |
|  6 | Stack Overflow | https://stackoverflow.com/ |  16 |    48 |   592.2 | US      |
|  7 | Yandex         | http://www.yandex.ru/      |  11 |    53 |  591.82 | RU      |
|  8 | VK             | https://vk.com/            |  23 |    23 |    1206 | RU      |
+----+----------------+----------------------------+-----+-------+---------+---------+
下面的语句将删除 id 为 6 的网站信息:
DELETE FROM website
WHERE id = 6;
执行完该语句,website 表的记录如下:
+----+-------------+-------------------------+-----+-------+---------+---------+
| id | name        | url                     | age | alexa | uv      | country |
+----+-------------+-------------------------+-----+-------+---------+---------+
|  1 | 百度        | https://www.baidu.com/  |  21 |     4 |  5010.5 | CN      |
|  2 | 淘宝        | https://www.taobao.com/ |  17 |     8 | 3996.75 | CN      |
|  3 | C语言中文网 | http://c.biancheng.net/ |  12 |  7923 |   11.62 | CN      |
|  4 | Google      | https://www.google.com/ |  23 |     1 |   36474 | US      |
|  5 | GitHub      | https://github.com/     |  13 |    95 |   216.3 | US      |
|  7 | Yandex      | http://www.yandex.ru/   |  11 |    53 |  591.82 | RU      |
|  8 | VK          | https://vk.com/         |  23 |    23 |    1206 | RU      |
+----+-------------+-------------------------+-----+-------+---------+---------+

如果您想删除 website 表中的所有记录,则无需使用 WHERE 子句,此时的 DELETE 命令如下所示:
DELETE FROM website;
执行完该语句,website 表将没有任何记录,也即变成一个空表。