从数据表中删除数据使用 DELETE 语句,DELETE 语句允许用 WHERE 子句指定删除条件。
语法格式:
DELETE FROM table_name [WHERE <condition>
table_name: 要执行删除操作的表;
[ WHERE <condition> ] 为可选参数,用于指定删除条件,如果没有 WHERE 子句,将删除表中的所有记录。
【例】在 person 表中,删除 id=3 的记录。
删除前:
mysql> SELECT * FROM person;
+----+--------+-----+----------+
| id | name | age | info |
+----+--------+-----+----------+
| 1 | Willam | 21 | student |
| 2 | Suse | 22 | student |
| 3 | Mary | 24 | Musicion |
+----+--------+-----+----------+
删除 SQL 语句:
mysql> DELETE FROM person WHERE id=3;
Query OK, 1 row affected (0.13 sec)
执行结果:
mysql> SELECT * FROM person;
+----+--------+-----+---------+
| id | name | age | info |
+----+--------+-----+---------+
| 1 | Willam | 21 | student |
| 2 | Suse | 22 | student |
+----+--------+-----+---------+
【例】删除 person 表中所有的记录。
删除前:
mysql> SELECT * FROM person;
+----+--------+-----+---------+
| id | name | age | info |
+----+--------+-----+---------+
| 1 | Willam | 21 | student |
| 2 | Suse | 22 | student |
+----+--------+-----+---------+
删除 SQL 语句:
mysql> DELETE FROM person;
Query OK, 2 rows affected (0.14 sec)
查看执行结果:
mysql> SELECT * FROM person;
Empty set (0.00 sec)
如果想删除表中的所有记录,还可以使用 TRUNCATE TABLE 语句,TRUNCATE 可以直接删除原来的表并重新创建一个表,其语法结构为 TRUNCATE TABLE table_name。 TRUNCATE 是直接删除表而不是删除记录,因此执行速度比 DELETE快。
【注】参考于清华大学出版社《MySQL数据库应用案例课堂》2016年1月第1版