SQL基础10:update单表、多表联合更新||mysql、sqlserver、oracle、db2

image.png

目录:
一、SQLSERVER
二、ORACLE
三、DB2
四、MYSQL

一、SQLSERVER中UPDATE使用方法

我们先看一下SQLSERVER中的UPDATE语法

单表更新
方法1:
update a set a.telephone=b.telephone
from table2 a
inner join table1 b on a.joid_id=b.user_id
多表联合更新
方法2:
update table2
set telephone=a.telephone
from table1 a
WHERE table2.joid_id=a.user_id

下面提供两个案例:

  • 01将SFDB字段中的空字符串更改为NULL值

update HLSDZ_PJJG
set SFDB = null
where SFDB =''

update YWWATER.HLSZPJJG_LJ 
set UPDATETIME = getdate()
where POINTCODE = 'HLBM_57' and NF = '2019' AND YF = '10'


01-执行后结果
  • 02更新A表10月POINTNAME字段。
    分析:A表中有10月之前的数据,这里只更新10月的数据,以前月份的数据不更新。
    关联条件,字段相同的才进行更新

update a set a.POINTNAME=b.POINTNAME
from 
(select * from YWWATER.HLSZPJJG_LJ where NF = '2019' AND YF = '10')A
inner join 
(SELECT DISTINCT SX,HL,SHI,POINTCODE,POINTNAME,DMMC FROM YWWATER.HLSZPJJG_LJ WHERE POINTCODE IS NOT NULL AND SX IS NOT NULL)b 
on a.SX = B.SX AND A.HL = B.HL AND A.SHI = B.SHI AND A.DMMC = B.DMMC



二、ORACLE中UPDATE使用方法

我们先看ORACLE中UPDATE的语法,和sqlserver的语法类

单表更新
方法一:
UPDATE 表名称 
SET 字段 1=值 1,字段 2=值 2,...
[WHERE 更新条件(s)]

方法二:
update student
  set (sname, sage, sbirthday, saddress) =
  (select '李四', 20, to_date('2010-01-01', 'yyyy-mm-dd'), '广州市越秀区' from dual)
where sid = 1
多表更新
方法三:
update 表名称 a
 set (字段1,字段2) = 
(select POINTCODE,POINTNAME from 表名称B
where a.字段 = B.字段 AND A.字段 = B.字段)---A表和B 表的关联关系
where a.NF = '2019' and A.YF = '10'---更新A 表中的部分内容

举两个例子

  • 01将POINTCODE,POINTNAME字段中的内容变为空值
UPDATE YWWATER.HLSZPJJG_LJ
SET POINTCODE = NULL,POINTNAME = NULL
WHERE NF = '2019' AND YF = '10'
  • 02 更新POINTCODE,POINTNAME字段
    分析:更新A表中的字段,并且A表和B 表能关联上的字段才更新
    更新A表中的部分数据

update YWWATER.HLSZPJJG_LJ a
 set (POINTCODE,POINTNAME) = 
(select POINTCODE,POINTNAME from
(SELECT DISTINCT SX,HL,SHI,POINTCODE,POINTNAME,DMMC FROM YWWATER.HLSZPJJG_LJ WHERE POINTCODE IS NOT NULL AND SX IS NOT NULL)B
where a.SX = B.SX AND A.HL = B.HL AND A.SHI = B.SHI AND A.DMMC = B.DMMC)
where a.NF = '2019' and A.YF = '10'

三、DB2中UPDATE使用方法

DB2数据库中UPDATE使用方法和ORACLE中几乎时一样的。

我们先看DB2中UPDATE语法

单表更新

UPDATE A 
     SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
     WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)

多表更新

UPDATE YWWATER.HLSZPJJG_LJ A SET (POINTCODE,POINTNAME)= 
(SELECT B.POINTCODE_SJZX,B.POINTNAME_SJZX FROM YWWATER.T_ENV_MANUAL_WATERPOINTINFO_SC B
WHERE A.DMMC=B.POINTNAME AND A.HL=B.WATERNAME
)
WHERE POINTCODE IS NULL

四、MYSQL中UPDATE使用方法

单表更新
UPDATE coursers  
SET cname = 'TEST',tno = '99999'
where cno = '3106'
单表更新1

单表更新2
多表更新
UPDATE coursers a JOIN 
(select '3105' cno,'82222'tno,'YINGYU' cname) b 
ON a.cno = b.cno 
SET a.tno=b.tno,a.cname=b.cname
go
多表更新1

多表更新2

案例都是我工作中使用到,UPDATE的使用方法就介绍到这里了,想了解更详细可以百度

后记:因为我经常接触各种数据库,遇见复杂的陌生的函数要折腾很久,各种百度,各种测试,最关键的是我害怕把数据库的数据弄错了……所以啦,要养成数据库备份的习惯
20190709的时候写了这篇文章,工作需要、在sqlserver中更新两个字段,用了2个小时才把那条更新语句写出来。想想主要有两个因素:不熟悉语法,不了解业务关系不知道关联哪几个字段……所以当时写这条语句的时候真的非常累,最后完成本篇文章是在20191124,方便以后自己查找,也给其他小伙伴提供方便吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容