正在加载内容…
MySQL UPDATE 更新数据
582 字
3 分钟
MySQL UPDATE 更新数据
本文讲解MySQL的UPDATE语法:用SET改字段、WHERE限定行,省WHERE会全表更新;还涉及表达式计算、约束校验和误操作防范。
第3章 UPDATE 更新数据
3.1 UPDATE 的基本语法
UPDATE 用于修改表中已存在的记录,语法结构是:
UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2, ... WHERE 条件;SET 后面列出要修改的字段和新值,WHERE 后面指定要修改哪些行。例如把 id 为 1 的学生年龄改为 19:
UPDATE student SET age = 19 WHERE id = 1;如果一行里有多个字段需要修改,用逗号隔开,一次更新完成:
UPDATE student SET age = 19, email = 'zhangsan_new@example.com'WHERE id = 1;3.2 WHERE 条件的重要性
WHERE 是 UPDATE 的”安全阀”。如果省略 WHERE,UPDATE 会修改整张表的所有记录,这通常是危险的误操作:
-- 危险!会把所有学生的年龄都改成 20UPDATE student SET age = 20;因此写 UPDATE 时,强烈建议先写 WHERE 再写 SET,或者先在 SELECT 里用同样的条件确认要影响的行数,避免误伤数据。
3.3 基于计算和函数的更新
UPDATE 里可以用表达式或函数来计算新值。例如给所有学生年龄加 1:
UPDATE student SET age = age + 1 WHERE class_id = 1;也可以用字符串函数拼接内容:
UPDATE student SET name = CONCAT(name, '_新') WHERE id = 2;3.4 更新流程
flowchart TD
A[定位表] --> B{是否有 WHERE 条件}
B -- 有 --> C[筛选目标行]
B -- 无 --> D[全表所有行]
C --> E[计算 SET 的新值]
D --> E
E --> F[校验约束]
F --> G[写回表中]
3.5 注意事项
- 更新的值必须满足字段的约束,例如更新到
name为NULL会因NOT NULL失败。 - 更新
UNIQUE字段时不能与已有记录冲突。 - 一条 UPDATE 通常只影响满足条件的若干行,影响行数可以通过执行后返回的提示查看。
3.6 常见问题 Q&A
Q1:忘记写 WHERE 会怎样? A:会更新整张表所有行,属于常见高危误操作,执行前务必确认条件。
Q2:能在 UPDATE 里用子查询吗? A:可以,例如把某班学生年龄改成该班平均年龄,但要注意子查询与目标表别名的使用规则。
Q3:如何只更新影响行数的部分? A:UPDATE 无法直接限制条数,通常用 WHERE 精确圈定范围即可。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
MySQL UPDATE 更新数据
https://mjzy.tech/posts/mysql/03-update更新数据/ 相关文章 智能推荐
1
MySQL INSERT 插入数据
MySQL 本文讲解MySQL INSERT插入数据,涵盖基本语法、省略字段列表、批量插入、INSERT…SELECT复制数据及约束校验注意事项。
2
MySQL DELETE 删除数据
MySQL 本文讲解 MySQL 中 DELETE 删除数据的基本语法,说明 WHERE 条件决定删除范围,比较 DELETE 与 TRUNCATE 的差异,并提示先查询确认、备份及外键约束等安全注意事项。
3
MySQL 数据库与表基础
MySQL 本文介绍MySQL建库建表基础,涵盖数据库分类、常用数据类型及主键、非空、唯一等约束,并用问答说明选型与开发要点。
4
MySQL 联表查询 JOIN
MySQL 本文讲解MySQL联表查询,说明内连接、左右连接及自连接与子查询的用法,并辨析ON与WHERE的区别。
5
MySQL 分组查询与子查询
MySQL 讲解MySQL分组查询与子查询:用GROUP BY配合聚合、HAVING及WITH ROLLUP做分组汇总;子查询按结果分为四类,可用于WHERE、FROM、SELECT及EXISTS相关判断。
随机文章 随机推荐
评论区
正在加载 GitHub 评论…