UPDATE の使い方

値を書き換える

書き方

UPDATE 表 SET 列 = 値, … WHERE 条件;

WHERE を忘れるとすべての行が変わります。SET の右側には計算や副問い合わせも書けます。

よく使うオプション

オプション意味
SET 列 = 値列の値を書き換える
SET 列 = 値, 列 = 値いくつかの列を一度に書き換える
WHERE 条件書き換える行を決める(無いと全部の行)
FROM 表(PostgreSQL)ほかの表を見て書き換える

例

UPDATE employees SET salary = salary + 10000 WHERE dept_id = 2;UPDATE 12

部署 2 の社員の給与を 1 万円上げます。右側は今の値を使った計算でも書けます。

UPDATE orders SET status = 'sent', total = total - 500 WHERE id = 9001;UPDATE 1

注文 9001 の状態と金額を、まとめて書き換えます。

UPDATE customers SET phone = NULL WHERE phone = '';

空の文字列で入っている電話番号を、NULL にそろえます。

UPDATE orders o SET status = 'vip' FROM customers c WHERE c.id = o.customer_id AND c.city = '東京';

東京の客の注文だけを書き換えます。FROM でほかの表を見る書き方は PostgreSQL のものです。

よくある間違い・注意

  • WHERE を忘れると、すべての行が書き換わります。先に同じ WHERE で SELECT して、対象の行を確かめると安全です。
  • トランザクション(BEGIN)の中で打てば、間違えても ROLLBACK で戻せます。
  • UPDATE … FROM は PostgreSQL の書き方です。Oracle や MySQL では書き方が違います。

実際に打って練習する

SQL コースの Lv39「書き換える UPDATE」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

SQL 構文一覧(使い方と例)へ戻る