【数据库】sql的update语句怎么使用?

UPDATE 用来修改表中已有行的字段值,最关键的是一定写好 WHERE,否则会更新全表。

基本语法

sql 复制代码
UPDATE 表名
SET 列1 = 值1,
    列2 = 值2
WHERE 条件;

常见用法

1) 按条件更新某些行

sql 复制代码
UPDATE users
SET status = 'active'
WHERE id = 1001;

2) 同时更新多个列

sql 复制代码
UPDATE orders
SET pay_status = 'paid',
    paid_at = NOW()
WHERE order_no = 'A20260225';

3) 用原值计算更新(自增/拼接等)

sql 复制代码
UPDATE products
SET stock = stock - 1
WHERE id = 10 AND stock > 0;

4) 用子查询更新

sql 复制代码
UPDATE employees
SET dept_id = (SELECT id FROM dept WHERE name = '研发')
WHERE dept_id IS NULL;

5) 关联更新(不同数据库写法略不同)

MySQL

sql 复制代码
UPDATE a
JOIN b ON b.id = a.b_id
SET a.col = b.col
WHERE a.flag = 1;

PostgreSQL

sql 复制代码
UPDATE a
SET col = b.col
FROM b
WHERE b.id = a.b_id AND a.flag = 1;

安全小建议

  • 先用同样的 WHERE 跑一遍:
sql 复制代码
SELECT * FROM 表名 WHERE 条件;
  • 或先 BEGIN; 更新后检查再 COMMIT;(支持事务的库)。
相关推荐
2603_965148113 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
ltl3 小时前
RocksDB 经典故障排查:L0、compaction 与 write stall
数据库
xfhuangfu4 小时前
Oracle中建立到CDB和PDB的连接
数据库·oracle·rpc
小小龙学IT5 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData5 小时前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
J_bean5 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean5 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定
浪子明X6 小时前
从 MongoDB 文档到关系模型:构建可重跑、可对账的数据迁移流水线
数据库·mongodb·oracle
杜子不疼.6 小时前
国产数据库撑起固井软件自主化:金仓 × 中海油服「海恒 Cemsol」落地解析
数据库
隔窗听雨眠6 小时前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle