コンテンツにスキップ

UPDATE (SQL)

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。TXiKiBoT (会話 | 投稿記録) による 2009年10月20日 (火) 10:37個人設定で未設定ならUTC)時点の版 (ロボットによる 追加: hr:Update (SQL))であり、現在の版とは大きく異なる場合があります。

UPDATEステートメントは、1つもしくは複数のレコードのデータを更新する、SQLにおけるデータ操作言語 (DML)ステートメントの1つである。すべてのレコードを一括更新するかまたは、条件式を満たす一部のレコードだけを更新することができる。

文法

UPDATE テーブル名 SET 列名1 = 値1 [,列名2 = 値2...] [WHERE 条件式];

 正常に更新が行われるためには、ユーザはそのテーブルまたは項目に対する更新権限を持っている必要がある。 また、更新後の値がPRIMARY KEY制約一意性制約CHECK制約NOT NULL制約などに違反しないことが必要である。

サンプル

テーブル "t" に対して、列 "c2" の値が a の場合に限り、列 "c1" に 1 をセットする。

UPDATE t SET c1 = 1 WHERE c2 = 'a';

テーブル "t" に対し列 "c2" の値が a の場合に限り、列 "c1" の値に 1 を加算する。

UPDATE t SET c1 = c1 + 1 WHERE c2 = 'a';

サブクエリ(副次問い合わせ)の例: テーブル "t1" の列 "c2" の値が、テーブル "t2" の列 "c4" の値が 0 であるレコードの列 "c3" の値のリストに含まれに限り、列 "c1" に 2 をセットする。

UPDATE t1 
   SET c1 = 2    
 WHERE c2 IN (SELECT c3 FROM t2 WHERE c4 = 0);

1つのUPDATEステートメントで複数列を更新することも可能である。

UPDATE test SET c1 = 1, c2 = 2;