既存のテーブルに保存されたデータの更新するUPDATEの紹介。
基本のUPDATE
update TABLEB set TBLBCOL03 = 'TEST'
TABLEBの全ての行を対象に
列TBLBCOL03の値を’TEST’に変更します。
複数列のUPDATE
update TABLEB set TBLBCOL03 = 'TEST', TBLBCOL04 = 'TEST1'
TABLEBの全ての行を対象に
列TBLBCOL03の値を’TEST’に
列TBLBCOL04の値を’TEST1’に変更します。
条件付きUPDATE
update TABLEB set TBLBCOL03 = 'TEST' where TBLBCOL01 = 2
TABLEBの列TBLBCOL01に「2」を持つ行を対象に
列TBLBCOL03の値を’TEST’に変更します。
TABLEBの列TBLBCOL01に「2」を持つ行が存在しなかったら、何も変更されません。
他テーブルの値でUPDATE
他のテーブルの値を利用してのUPDATEの構文は沢山あるので、用途に応じて変わります。
ここでは1例を紹介します。
基本の構文
update TABLEB set TBLBCOL03 = ( select TBLACOL03 from TABLEA where TBLACOL01 = 2 )
TABLEB全ての行を対象に
TABLEBの列TBLBCOL03の値を
TABLEAの列TBLACOL01の値が「1」の行の
TBLACOL03の値で更新します。
TABLEAの列TBLACOL01に「2」を持つ行が存在することを前提としています。
もし存在しなかったら、Nullで更新されます。
この対策はEXISTSで可能となります。
EXISTSについては長くなるのでここでは省略します。
条件付き
update TABLEB set TBLBCOL03 = ( select TBLACOL03 from TABLEA where TBLACOL01 = 2 ) where TBLBCOL01 = 3
TABLEBの列TBLBCOL01の値が「3」を持つ行を対象に
TABLEBの列TBLBCOL03の値を
TABLEAの列TBLACOL01の値が「1」の行の
TBLACOL03の値で更新します。
コメント