首页 > 数据库 > SQL > 正文

SQL更新数据详细教程_SQL UPDATE语句完整解析

尊渡假赌尊渡假赌尊渡假赌
发布: 2025-12-04 21:12:07
原创
275人浏览过
SQL UPDATE语句用于修改表中已有数据,核心是“定位要改的行+指定改为什么”,必须包含UPDATE表名、SET字段=新值、WHERE筛选条件三部分,漏掉WHERE会误更新全表。

sql更新数据详细教程_sql update语句完整解析

SQL UPDATE 语句用来修改表中已存在的数据,核心是“定位要改的行 + 指定改为什么”,漏掉 WHERE 条件极易误更新全表,这是最常见也最危险的操作失误。

UPDATE 基本语法与安全写法

标准写法必须包含三部分:UPDATE 表名、SET 字段=新值、WHERE 筛选条件。

  • ✅ 正确示例:UPDATE users SET email = 'new@ex.com' WHERE id = 105;
  • ❌ 危险写法:UPDATE users SET email = 'new@ex.com';(没 WHERE,全表 email 都被改)
  • 建议养成习惯:写 UPDATE 前先写好 WHERE,并用 SELECT 验证范围,比如先执行 SELECT * FROM users WHERE id = 105;

一次更新多个字段

SET 后可同时设置多个列,用英文逗号分隔,无需重复 SET 关键字。

  • 示例:UPDATE products SET price = 99.9, stock = 50, updated_at = NOW() WHERE sku = 'P2024-001';
  • 注意:各字段赋值顺序无关,但所有字段都受同一 WHERE 条件约束
  • 字符串用单引号,数字和函数(如 NOW()、CURRENT_DATE)不加引号

用子查询或表达式更新

SET 右侧不仅可以是常量,还可以是字段运算、其他表数据或子查询结果。

小云雀
小云雀

剪映出品的AI视频和图片创作助手

小云雀 1587
查看详情 小云雀
  • 字段计算:UPDATE orders SET total = quantity * unit_price;
  • 关联更新(MySQL/PostgreSQL 支持):UPDATE orders o SET customer_name = (SELECT name FROM customers c WHERE c.id = o.cust_id);
  • 注意:子查询返回结果必须是单值,否则报错;某些数据库(如 SQL Server)支持 JOIN 写法,语法略有不同

限制更新行数 & 检查影响结果

防止意外大量更新,多数数据库提供限行机制,执行后也应确认是否成功。

  • MySQL 加 LIMIT:UPDATE logs SET status = 'archived' WHERE created_at
  • PostgreSQL 用 RETURNING 查看被改的行:UPDATE users SET active = false WHERE last_login
  • 执行后查看“X rows affected”提示,或查系统变量(如 MySQL 的 ROW_COUNT())确认实际更新数量

基本上就这些。UPDATE 不复杂但容易忽略 WHERE 或写错条件,动手前多看一眼,加个 SELECT 验证,能避开 90% 的线上事故。

以上就是SQL更新数据详细教程_SQL UPDATE语句完整解析的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号