维基百科:
Update
指令用于更新数据库中的数据。
慕课解释:Update,传闻中增删查改中的
改
,是更新数据库数据的主要途径。
本小节,我们将一起学习 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);
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
- 6
- 7
使用 Update 时,我们需要搭配 Set。
使用语法如下:
UPDATE [table_name] SET [col]=[val] WHERE [col]=[val];
代码块预览 复制
- 1
其中table_name
时数据表名称,col
是字段名,val
是字段值。
通过 Where 的筛选,Update 可以做到一次只更新一条记录。
请书写 SQL 语句,更新imooc_user
表中用户名为pedro
的年龄,使其年龄更新为18
。
分析:
由题干可知用户名是筛选条件,即username=pedro
,我们只需更新年龄为18,即SET age = 18
。
语句:
整理可得语句如下:
UPDATE imooc_user SET age = 18 WHERE username='pedro';
代码块预览 复制
- 1
结果如下:
+----------+-----+ | username | age | +----------+-----+ | pedro | 18 | +----------+-----+
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
Set 不仅可以更新单字段的值,还可以更新多字段的值。
请书写 SQL 语句,更新imooc_user
表中用户名为pedro
的年龄,使其用户名为pedrogao
,年龄更新为19
。
分析:
同上,只需添加上username
的更新值即可,字段之间使用,
隔开。
语句:
整理可得语句如下:
UPDATE imooc_user SET age = 19, username='pedrogao' WHERE username='pedro';
代码块预览 复制
- 1
结果如下:
+----------+-----+ | username | age | +----------+-----+ | pedrogao | 19 | +----------+-----+
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
改变 Where 的筛选条件,Update 还可以一次更新多条数据记录。
请书写 SQL 语句,更新imooc_user
表中年龄为18
的用户,使其用户名为18s
。
分析:
同上,过滤条件变为了age
,更新字段变成了username
。
语句:
整理可得语句如下:
UPDATE imooc_user SET username = '18s' WHERE age=18;
代码块预览 复制
- 1
结果如下:
+----------+-----+ | username | age | +----------+-----+ | pedrogao | 19 | | 18s | 18 | | 18s | 18 | +----------+-----+
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 切勿直接使用
UPDATE imooc_user SET age = 18;
这样的 SQL语句,会直接改掉所有的数据。 - 大部分的业务其实都是增删查改,而 Update 是占比最大的。
- 熟练掌握 Update 并非一蹴而就,需要多多练习。