12月阅读周·MySQL数据库入门:数据库操作之更新数据篇

举报
叶一一 发表于 2024/12/25 09:37:46 2024/12/25
【摘要】 背景去年下半年,我在微信书架里加入了许多技术书籍,各种类别的都有,断断续续的读了一部分。没有计划的阅读,收效甚微。新年伊始,我准备尝试一下其他方式,比如阅读周。每月抽出1~2个非连续周,完整阅读一本书籍。这个“玩法”虽然常见且板正,但是有效,已经坚持阅读十一个月。已读完书籍:《架构简洁之道》、《深入浅出的Node.js》、《你不知道的JavaScript(上卷)》、《你不知道的JavaScr...

背景

去年下半年,我在微信书架里加入了许多技术书籍,各种类别的都有,断断续续的读了一部分。

没有计划的阅读,收效甚微。

新年伊始,我准备尝试一下其他方式,比如阅读周。每月抽出1~2个非连续周,完整阅读一本书籍。

这个“玩法”虽然常见且板正,但是有效,已经坚持阅读十一个月。

已读完书籍《架构简洁之道》、《深入浅出的Node.js》、《你不知道的JavaScript(上卷)》、《你不知道的JavaScript(中卷)》、《你不知道的JavaScript(下卷)》、《数据结构与算法JavaScript描述》、《WebKit技术内幕》、《前端架构:从入门到微前端》、《秒懂算法:用常识解读数据结构与算法》、《JavaScript权威指南》、《JavaScript异步编程设计快速响应的网络应用》、《编写可测试的JavaScript代码

当前阅读周书籍MySQL数据库入门

更新数据

更新数据是指对表中存在的记录进行修改,这是数据库常见的操作,比如某个学生改了名字,就需要对其记录信息中的name字段值进行修改。

MySQL中使用UPDATE语句来更新表中的记录,其基本的语法格式如下所示:

UPDATE 表名
  SET 字段名1= 值1[,字段名2 = 值2,…]
  [WHERE 条件表达式]

在上述语法格式中,“字段名1”,“字段名2”用于指定要更新的字段名称,“值1”,“值2”用于表示字段更新的新数据。“WHERE条件表达式”是可选的,用于指定更新数据需要满足的条件。UPDATE语句可以更新表中的部分数据和全部数据,下面就对这两种情况进行讲解。

UPDATE更新部分数据

更新部分数据是指根据指定条件更新表中的某一条或者某几条记录,需要使用WHERE子句来指定更新记录的条件。

【例1-1】  更新student表中id字段值为1的记录,将记录中的name字段的值更改为'caocao',grade字段的值更改为50。在更新数据之前,首先使用查询语句查看id字段值为1的记录,执行结果如下所示:

mysql>SELECT * FROM student
  -> WHERE id=1;
+------+----------+-------+
| id    | name      | grade |
+------+----------+-------+
|  1  | zhangsan |  98.5  |
+------+----------+-------+
1 row in set (0.00 sec)

从查询结果可以看到,id字段值为1的记录只有一条,记录中name字段的值为'zhangsan',grade字段的值为98.5。下面使用UPDATE语句更新这条记录,SQL语句如下所示:

UPDATE student
set name='caocao',grade=50
WHERE id=1;

上述SQL语句执行成功后,会将id为1的数据进行更新。为了验证数据是否更新成功,使用SELECT语句查看数据库student中id为1的记录,查询结果如下所示:

mysql>SELECT * FROM student
  -> WHERE id=1;
+------+--------+-------+
| id    | name   | grade |
+------+--------+-------+
|  1  | caocao |    50  |
+------+--------+-------+
1 row in set (0.00 sec)

从查询结果可以看到,id字段值为1的记录发生了更新,记录中name字段的值变为'caocao',grade字段的值变为50。如果表中有多条记录满足WHERE子句中的条件表达式,则满足条件的记录都会发生更新。

【例1-2】  更新student表中id字段值小于4的记录,将这些记录的grade字段值都更新为100。在更新数据前,首先使用查询语句查看id字段值小4的记录,执行结果如下所示:

mysql>SELECT * FROM student
  -> WHERE id<4;
+------+--------+-------+
| id    | name   | grade |
+------+--------+-------+
|  1  | caocao |    50  |
|  2  | lisi   |    95  |
|  3  | wangwu |  61.5 |
+------+--------+-------+
3 rows in set (0.00 sec)

从查看结果可以看到,id字段值小于4的记录一共有三条,它们的grade字段值各不相同。下面使用UPDATE语句更新这三条记录,UPDATE语句如下所示:

UPDATE student
SET grade=100
WHERE id<4;

执行UPDATE语句更新student表中的数据,然后通过查询语句查看更新后的数据,执行结果如下所示:

mysql>SELECT * FROM student
  -> WHERE id<4;
+------+--------+-------+
| id    | name   | grade |
+------+--------+-------+
|  1  | caocao |  100 |
|  2  | lisi    |  100 |
|  3  | wangwu |  100 |
+------+--------+-------+
3 rows in set (0.00 sec)

从查询结果可以看出,id字段值为1、2、3的记录其grade字段值都变为100,这说明满足WHERE子句中条件表达式的记录都更新成功。

UPDATE更新全部数据

在UPDATE语句中如果没有使用WHERE子句,则会将表中所有记录的指定字段都进行更新。

【例1-3】  更新student表中全部记录,将grade字段值都更新为80,UPDATE语句如下所示:

UPDATE student
SET grade=80;

执行UPDATE语句更新student表中的数据,接下来通过查询语句查看更新后的记录,SQL语句如下所示:

mysql>select * from student;
+------+-----------+-------+
| id    | name       | grade |
+------+-----------+-------+
|      1  | caocao     |    80  |
|      2  | lisi       |    80  |
|      3  | wangwu     |    80  |
|      4  | zhaoliu    |    80  |
| NULL | sunbin     |    80  |
|      5  | boya       |    80  |
|      6  | lilei      |    80  |
|      7  | hanmeimei |    80  |
|    8  | poly       |    80  |
|     9  | liubei     |    80  |
|  10  | guanyu     |    80 |
|   11  | zhangfei  |    80  |
+------+-----------+-------+
11 rows in set (0.00 sec)

从查询结果可以看出,student表中所有记录的grade字段都变为80,数据更新成功。

总结

更新数据是指对表中存在的记录进行修改,这是数据库常见的操作,比如某个学生改了名字,就需要对其记录信息中的name字段值进行修改。

MySQL中使用UPDATE语句来更新表中的记录,UPDATE语句可以更新表中的部分数据和全部数据。


作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏️ | 留言📝

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。