【SQL】UPDATEでテーブル名に別名(エイリアス)をつける


このページでは、ORACLEデータベースのSQLで、UPDATE文でAS句を使ってテーブルに別名(エイリアス)をつけて更新をする方法を紹介しています。

UPDATE文のサンプルは↓で多数紹介していますので参考にしてください。
>>【SQL】UPDATE文の書き方:サンプル多数あり

UPDATEでテーブル名に別名(エイリアス)をつける

UPDATE文で表名に別名(エイリアス)をつけるには、ASを使います。

基本的な書き方は次の通りです。

UPDATE テーブル名[ AS 別名] SET カラム名=値[,列名=値][ WHERE 条件];

ASは省略することもできます。

UPDATE文でテーブル名に別名をつけたSQLサンプル

ここからは、実際にUPDATE文でテーブル名に別名をつけたサンプルを使って解説していきます。

次のSQLでは、TAB1テーブルにaという別名を付けています。列名を指定するときには、別名.列名という形で指定します。

update
    tab1 as a
set
    a.col3 = 'AAAAA'
where
    a.col1 = '00001'
;

別名を使うとき、ASは省略することもできます。
次のSQLでは、ASを省略して、「tab1 a」とコーディングしています。結果は同じになります。

update
    tab1 a
set
    a.col3 = 'AAAAA'
where
    a.col1 = '00001'
;

テーブルの別名は、複数のテーブルにつけることもできます。
次のSQLでは、TAB1テーブルをa、TAB2テーブルをbという別名を付けています。

UPDATE 
    tab1 a
    inner join tab2 b on a.col1 = b.col1
SET 
    a.col2 = b.col2
    ,a.col3 = b.col3
where
    a.col1 = '00001'
;

複数のテーブルを使うSQLでは、同じ列名のカラムがある場合、テーブル名.列名という風に表記する必要があります。別名を付けると、別名.列名と記述することができ、結果的にコーディング量や分かりやすさが向上することがあります。

まとめ

UPDATE文でテーブルに別名を付けるには、ASを使い、「テーブル名 AS 別名」と書きます。ASは省略することも出きます。これまでの経験からだと、ほとんどの場合、ASは省略されていました。

テーブルの別名は、複数のテーブルにつけることが出来ます。テーブルの別名については、別名の付け方をチーム、あるいはシステムの範囲で一定ルールを設けると、誰が見ても分かりやすいSQLとなります。

この他にも、UPDATE文の様々な書き方を解説しております。
詳しくは「【SQL】UPDATE文の書き方:サンプル多数あり」で解説しているのでぜひ参考にしてください。