【数据库】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;(支持事务的库)。
相关推荐
XDHCOM20 小时前
ORA-32484重复列名错误,ORACLE数据库CYCLE子句故障修复与远程处理方案
数据库·oracle
翻斗包菜20 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
呆瑜nuage20 小时前
MySQL表约束详解:8大核心约束实战指南
数据库·mysql
liliangcsdn21 小时前
Agent Memory智能体记忆系统的示例分析
数据库·人工智能·全文检索
那个失眠的夜21 小时前
Mybatis延迟加载策略
xml·java·数据库·maven·mybatis
Rick199321 小时前
SQL 执行流程
数据库·sql
M--Y21 小时前
Redis常用数据类型
数据结构·数据库·redis
猿小喵21 小时前
MySQL慢查询分析与处理-第二篇
数据库·mysql·性能优化
Y001112361 天前
MySQL-进阶
开发语言·数据库·sql·mysql
徒 花1 天前
数据库知识复习01
数据库