【数据库】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;(支持事务的库)。
相关推荐
笨小孩@GF 知行合一3 小时前
易语言-高级应用
数据库·编程·易语言·中文编程
KaiwuDB3 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
夜雪一千5 小时前
MySQL外键彻底入门:是什么、怎么用、什么时候不该用
数据库·mysql
qq_334466865 小时前
删除SSMS的历史登录记录
数据库·sql
zl_dfq5 小时前
Redis 之 【常见面试题总结】(从数据类型到高可用、缓存一致性全解析)
数据库·redis
龙亘川5 小时前
铭记英烈守初心,数字强基促服务:亘川智城退役军人服务系统的实践与价值
java·数据库·人工智能
kv1106 小时前
Android studio国内开发有关
java·数据库·android studio
哭泣方源炼蛊7 小时前
正则表达式c++内容汇集
数据库·c++·mysql·正则表达式
余槐i7 小时前
EXPLAIN 显示走了索引查询仍慢:回表与选择性在 500 万行表上拉开 10 倍耗时
数据库·postgresql·性能优化·vacuum·explain