1、语法
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;
2、举例
我们想更新students表id=1的记录的name和score这两个字段,先写出UPDATE students SET name='大牛', score=66,然后在WHERE子句中写出需要更新的行的筛选条件id=1:
UPDATE students
SET name='大牛', score=66
WHERE id=1;
SELECT * FROM students WHERE id=1;
id | class_id | name | gender | score |
1 | 1 | 大牛 | M | 66 |
UPDATE语句的WHERE条件和SELECT语句的WHERE条件其实是一样的,因此完全可以一次更新多条记录:
UPDATE students
SET name='小牛', score=77
WHERE id>=5 AND id<=7;
SELECT * FROM students;
id | class_id | name | gender | score |
1 | 1 | 大牛 | M | 66 |
2 | 1 | 小红 | F | 95 |
3 | 1 | 小军 | M | 88 |
4 | 1 | 小米 | F | 73 |
5 | 2 | 小牛 | F | 77 |
6 | 2 | 小牛 | M | 77 |
7 | 2 | 小牛 | M | 77 |
8 | 3 | 小新 | F | 91 |
9 | 3 | 小王 | M | 89 |
10 | 3 | 小丽 | F | 88 |
在UPDATE语句中,更新字段时可以使用表达式。例如,把所有80分以下的同学的成绩加10分:
UPDATE students SET score=score+10 WHERE score<80;
SELECT * FROM students;
如果WHERE条件没有匹配到任何记录,UPDATE语句不会报错,也不会有任何记录被更新。例如:
UPDATE students SET score=100 WHERE id=999;
SELECT * FROM students;
最后,要特别小心的是,UPDATE语句可以没有WHERE条件,例如:
这时,整个表的所有记录都会被更新。所以,在执行UPDATE语句时要非常小心,最好先用SELECT语句来测试WHERE条件是否筛选出了期望的记录集,然后再用UPDATE更新。
UPDATE students SET score=60;
3、小结
- 使用UPDATE...SET...,我们就可以一次更新表中的一条或多条记录。