Top > SQL 入門 > UPDATE

SQL 入門 (DMLの基本形式:UPDATE)

データの変更 ( UPDATE: 1レコードの更新、複数レコードの更新 )

オラクル・データベースの特定のレコードデータを選択し変更する。

指定した1レコードのみを更新

USER_ID '0001'の人のDEPT_NOを'0004'、更新日を現在日付に変更する。

UPDATE USER_MASTER
SET
    DEPT_NO = '0004',
    MODIFIED_ON = SYSDATE
WHERE
     USER_ID = '0001'

複数レコード更新

DEPT_NOが '1001' 所属の全員の USER_NAME に 'さん'を加え、更新日を現在日付に変更する。

UPDATE USER_MASTER
SET
    USER_NAME = USER_NAME || ' さん',
    MODIFIED_ON = SYSDATE
WHERE
    DEPT_NO = '1001'

ビューを使った更新(インラインビューを使った更新)

DEPT_NOが '1002' 所属の全員の USER_NAME に '氏' を加え、更新日を現在日付に変更する。
この例は単独表による簡単な UPDATE 例であるが、更新可能なビュー に属する問合せならば結合であっても良い。これは WHERE 句に同質の副問い合わせを繰り返し記述する事よりもスマートでかつパフォーマンスチューニングの観点からも優れた記述方法になる事が非常に多い。

UPDATE (
     SELECT
            DEPT_NO, USER_NAME
     FROM USER_MASTER
     WHERE  DEPT_NO = '1002'
) -- [ ビューの別名 ]
SET
    USER_NAME = USER_NAME || ' 氏',
    MODIFIED_ON = SYSDATE
 /*
 WHERE
    DEPT_NO = '1002'
 */

UPDATE の基本フォーマット

UPDATE
{
       <表名>  [ エイリアス名 ]  |
       <ビュー名>  [ エイリアス名 ]
}
SET
{
       <カラム名> = < 値 > |
       <カラム名> = < 式 > |
       <カラム名> = < SELECT文/問い合わせ >
}
[ WHERE < 条件 > ]

VIEW の場合にはテーブル結合, 集合演算子 (UNION / INTERSECT / MINUS), GROUP BY 句、 グループ関数、DISTINCT 演算子を含んでいないこと

 


SQL - UPDATE 関連

 
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ オラクルサポートセンター