
既存のテーブルに保存されたデータの更新する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の値で更新します。


コメント