(Translated by https://www.hiragana.jp/)
UPDATE (SQL) - Wikipedia コンテンツにスキップ

UPDATE (SQL)

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

UPDATEステートメントは、SQL におけるデータ操作そうさ言語げんご (DML) のステートメントの1つで、テーブルうちの1つもしくは複数ふくすうレコードのデータを更新こうしんする。WHERE省略しょうりゃくされている場合ばあいはすべてのレコードが、指定していされている場合ばあいはその条件じょうけんしきたす一部いちぶのレコードだけが、一括いっかつして更新こうしんされる。

構文こうぶん

[編集へんしゅう]
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';

1つのUPDATEステートメントで複数ふくすうれつ更新こうしんすることも可能かのうである。したれいでは、テーブル "t" にたいし、れつ "c1" のに 1 を、れつ "c2" のに 2 をセットする。

UPDATE test SET c1 = 1, c2 = 2;

結合けつごう

[編集へんしゅう]

のテーブルと結合けつごうした結果けっかにより更新こうしんおこな場合ばあい、サブクエリ(ふくつぎわせ)をもちいる方法ほうほうと、SELECT ステートメントと類似るいじ結合けつごうしきもちいる方法ほうほうがある。以下いかれいはどちらも、テーブル "t1" にたいし、れつ "a2" のが、テーブル "t2" のれつ "b1" のが 0 であるすべてのレコードにおけるれつ "b2" ののいずれかと一致いっちすれば、れつ "a1" に 2 をセットする。

サブクエリ

UPDATE t1 
   SET a1 = 2    
 WHERE a2 IN (SELECT b2 FROM t2 WHERE b1 = 0);

結合けつごう

UPDATE t1 
   SET a1 = 2
  FROM t2
 WHERE t1.a2 = t2.b2 AND t2.b1 = 0;