English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL 删除数据(DELETE 语句)

在本教程中,您将学习如何使用SQL从数据库表中删除记录。

从表中删除数据

就像使用INSERT语句将记录插入表中一样,您也可以使用语句从表中删除记录DELETE。

语法

DELETE语句用于从表中删除一个或多个行。

DELETE FROM table_name WHERE condition;

警告:DELETE语句中的WHERE子句指定应删除的记录。 但是,它是可选的,但是如果您省略或忘记了WHERE子句,则所有记录将从表中永久删除。

让我们从在创建表一章中创建persons表中删除一些记录。

假设我们的人員(persons表当前具有以下记录:

+----+--------------------+------------+-------------+
| id | name               | birth_date | phone       |
+----+--------------------+------------+-------------+
|  1 | Peter Wilson       | 1990-07-15 | 0711-020361 |
|  2 | Carrie Simpson     | 1995-05-01 | 0251-031259 |
|  3 | Victoria Ashworth  | 1996-10-17 | 0695-346721 |
|  4 | George Bailey      | 1993-03-05 | 0897-034214 |
|  5 | Norman Bates       | 1999-08-25 | 0522-556721 |
+----+--------------------+------------+-------------+

根据条件删除记录

以下语句将从id大于3的人员persons)表中删除行。

DELETE FROM persons WHERE id > 3;

执行查询后,人員(persons表将如下所示:

+----+--------------------+------------+-------------+
| id | name               | birth_date | phone       |
+----+--------------------+------------+-------------+
|  1 | Peter Wilson       | 1990-07-15 | 0711-020361 |
|  2 | Carrie Simpson     | 1995-05-01 | 0251-031259 |
|  3 | Victoria Ashworth  | 1996-10-17 | 0695-346721 |
+----+--------------------+------------+-------------+

注意:参照してください。SQL WHERE子句のチュートリアルを学び、テーブルからレコードを削除する際に複数の条件に基づいて複雑なクエリを形成する方法を理解しましょう。

すべてのデータを削除

同様に、先ほど述べたように、WHERE文に子句を指定しない場合、DELETE命令でテーブル内のすべての行が削除されます。ただし、目的のテーブル自体は削除されず、テーブルの構造、属性、インデックスは変更されませんが、テーブル内のデータはすべてクリアされます。

以下の文は、以下のように削除します:人員(personsテーブル内のすべてのレコード:

DELETE FROM persons;

今、あなたが人員(personsのテーブルからレコードを選択またはクエリ、空の結果セットが得られます。