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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。