テーブルの値を変更するSQL文|UPDATE

テーブルの値を変更するSQL文|UPDATE

データベースをイメージする画像

データベースをイメージする画像

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

 

 

コメント

タイトルとURLをコピーしました