SQL Update

1. 定义

维基百科:Update指令用于更新数据库中的数据。

慕课解释:Update,传闻中增删查改中的,是更新数据库数据的主要途径。

2. 前言

本小节,我们将一起学习 SQL Update

一般情况下,不会使用 Update 来更新所有数据,因此 Update 一般与 Where 一起搭配使用。
本小节我们将会以更新数据的多少来介绍 Update 的用法。

本小节测试数据如下,请先在数据库中执行:

DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
  username varchar(20),
  age int
);
INSERT INTO imooc_user(username,age) VALUES('pedro', 23), ('mike', 18), ('jerry', 18);

3. 语法

使用 Update 时,我们需要搭配 Set。

使用语法如下:

UPDATE [table_name] SET [col]=[val] WHERE [col]=[val];

其中table_name时数据表名称,col是字段名,val是字段值。

4. 更新一条记录

通过 Where 的筛选,Update 可以做到一次只更新一条记录。

4.1 例1、更新用户年龄

请书写 SQL 语句,更新imooc_user表中用户名为pedro的年龄,使其年龄更新为18

分析:

由题干可知用户名是筛选条件,即username=pedro,我们只需更新年龄为18,即SET age = 18

语句

整理可得语句如下:

UPDATE imooc_user SET age = 18 WHERE username='pedro';

结果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 18  |
+----------+-----+

4.2 例2、更新用户姓名和年龄

Set 不仅可以更新单字段的值,还可以更新多字段的值。

请书写 SQL 语句,更新imooc_user表中用户名为pedro的年龄,使其用户名为pedrogao,年龄更新为19

分析:

同上,只需添加上username的更新值即可,字段之间使用,隔开。

语句

整理可得语句如下:

UPDATE imooc_user SET age = 19, username='pedrogao' WHERE username='pedro';

结果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedrogao | 19  |
+----------+-----+

5. 更新多条记录

改变 Where 的筛选条件,Update 还可以一次更新多条数据记录。

5.1 例3、更新多用户年龄

请书写 SQL 语句,更新imooc_user表中年龄为18的用户,使其用户名为18s

分析:

同上,过滤条件变为了age,更新字段变成了username

语句

整理可得语句如下:

UPDATE imooc_user SET username = '18s' WHERE age=18;

结果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedrogao | 19  |
| 18s      | 18  |
| 18s      | 18  |
+----------+-----+

6. 小结

  • 切勿直接使用UPDATE imooc_user SET age = 18;这样的 SQL语句,会直接改掉所有的数据。
  • 大部分的业务其实都是增删查改,而 Update 是占比最大的。
  • 熟练掌握 Update 并非一蹴而就,需要多多练习。