《洗料系列-数据库专题》:常见的MySQL和Oracle在update操作时会存在SQL语句的区别,本文针对MySQL和Oracle在单表更新操作和多表关联更新两个场景下的SQL语句进行了简单的讨论。
MySQL更新语句
单表更新
UPDATE 表
SET 字段1=值1,字段2=值2
[WHERE 条件] -- 限定更新范围
多表关联更新
UPDATE 表1 a
[LEFT/RIGHT/FULL] JOIN 表/视图/子查询 b ON a.字段1=b.字段2 -- 关联表及关联关系
SET a.字段3=值1,b.字段4=值2 -- 其中b必须为可更新的状态
[WHERE 条件] -- 限定更新范围
Oracle更新语句
单表更新
-- 方式1
UPDATE 表
SET 字段1=值1,字段2=值2
[WHERE 条件] -- 限定更新范围
-- 方式2
UPDATE 表
SET (字段1,字段2)=(值1,值2)
[WHERE 条件] -- 限定更新范围
多表关联更新
UPDATE 表1 a
SET (字段1,字段2)=
-- 从关联表取关联关系的记录的值
(SELECT 字段3,字段4 FROM 表2 b WHERE a.字段5=b.字段6)
[WHERE 条件] -- 限定更新范围