【数据库】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;(支持事务的库)。
相关推荐
IvorySQL5 小时前
PostgreSQL 日报|恢复期 COPY TO 未日志表修复(10 月 21 日)
数据库·postgresql·区块链
贝猫说python6 小时前
大模型比赛2.3智能体开发(工具调用智能问答助手)
数据库·oracle
许彰午8 小时前
28-ORA-01110数据文件读取错误
数据库·oracle
凯凯姜8 小时前
MySQL 联合索引设计与索引失效
数据库·mysql
猫咪很可爱8 小时前
Oracle TEMP 表空间不足(ORA-01652)问题分析与优化实践
数据库·oracle
九零HTTP10 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
Data-Miner10 小时前
需要做财务数据分析,有什么好用的工具?从准备到出报告的实操指南
大数据·数据库·数据分析
袋鼠云数栈11 小时前
让 SQL 解析不再重复造轮子:SqlParserX 正式开源
数据库·人工智能·sql·开源·数据治理
这个DBA有点耶11 小时前
期货 CTP 系统 Oracle RAC 迁移国产库实战:读写分离架构设计与性能对标
数据库·架构·dba
数据库安全11 小时前
AI数据访问安全 |如何控制AI访问权限,防止越权
数据库·安全