手记

删除数据

删除数据

从一个表中删除(去掉)数据,使用DELETE语句。

Students表:

| id  | class_id | name | gender | score |
| --- | -------- | ---- | ------ | ----- |
| 1   | 1        | 小明 | M      | 90    |
| 2   | 1        | 小红 | F      | 95    |
| 3   | 1        | 小军 | M      | 88    |
| 4   | 1        | 小米 | F      | 73    |
| 5   | 2        | 小白 | F      | 81    |
| 6   | 2        | 小兵 | M      | 55    |
| 7   | 2        | 小林 | M      | 85    |
| 8   | 3        | 小新 | F      | 91    |
| 9   | 3        | 小王 | M      | 89    |
| 10  | 3        | 小丽 | F      | 88    |
DELETE FROM Students WHERE id = 1;
SELECT * FROM Students;

+----+----------+------+--------+-------+
| id | class_id | name | gender | score |
+----+----------+------+--------+-------+
| 2  | 1        | 小红 | F      | 95    |
| 3  | 1        | 小军 | M      | 88    |
| 4  | 1        | 小米 | F      | 73    |
| 5  | 2        | 小白 | F      | 81    |
| 6  | 2        | 小兵 | M      | 55    |
| 7  | 2        | 小林 | M      | 85    |
| 8  | 3        | 小新 | F      | 91    |
| 9  | 3        | 小王 | M      | 89    |
| 10 | 3        | 小丽 | F      | 88    |
+----+----------+------+--------+-------+

DELETE FROM要求指定从中删除数据的表名,WHERE子句过滤要删除的行。
在使用DELETE时一定不要省略WHERE子句,否则会删除表中所有行。通常应该先用SELECT进行测试,保证它过滤的是正确的记录。

删除列的值

DELETE只能删除整行,如果要删除指定的列,需要使用UPDATE语句,设置它为NULL(假如表定义允许NULL值)。

UPDATE Students SET gender = NULL WHERE id = 1; 

| id  | class_id | name | gender | score |
| --- | -------- | ---- | ------ | ----- |
| 1   | 1        | 小明 | NULL   | 90    |
| 2   | 1        | 小红 | F      | 95    |
| 3   | 1        | 小军 | M      | 88    |
| 4   | 1        | 小米 | F      | 73    |
| 5   | 2        | 小白 | F      | 81    |
| 6   | 2        | 小兵 | M      | 55    |
| 7   | 2        | 小林 | M      | 85    |
| 8   | 3        | 小新 | F      | 91    |
| 9   | 3        | 小王 | M      | 89    |
| 10  | 3        | 小丽 | F      | 88    |
0人推荐
随时随地看视频
慕课网APP