Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

データベースの更新作業をする場合に最も多いケースが条件指定を付けた更新となります。

全てのレコードを一度に書き換えるケースも無いとは言いませんが、実運用では分岐によって書き換えと追加を操作することがほとんどでしょう。

そこで今回は「WHEREを使ったUPDATE」について解説してみたいと思います。

UPDATEにおけるWHEREとは

UPDATEにおけるWHEREの役割は「条件式の設定」です。

勿論WHERE自体はUPDATE固有のものではありませんので、当然SELECT句やINSERT句にも付帯することが出来ます。

またUPDATEやSELECTには条件式を必ず付帯させなければならないということもないため、学習を始めたばかりの方にとって、WHEREの重要性というのはあまり理解できていないかもしれません。

UPDATE句にはWHEREを忘れず付帯させる

WHEREの重要性は恐らくUPDATEにこそあります。

UPDATEには、その特徴として検索条件を満たす全ての行を更新対象とします。

もしUPDATEにWHEREを設定していなかった場合、全てのレコードが変更対象となってしまうため、意図せぬトラブルに見舞われるでしょう。

10件や20件程度なら記憶を頼りに修正できるかもしれませんが、ビッグデータになるともう不可能です。

こういう理由から、UPDATEを使用する上で最も意識しておかなくてはならないことは「検索条件の設定(WHERE)」だと言えるでしょう。

UPDATE文でのWHEREの使い方

次はUPDATE文でのWHEREの使い方について説明していきたいと思います。

通常UPDATE文は次のように記述します。

UPDATE
     [テーブル名]
SET
     [カラムA] = 値1, [カラムB] = 値2, [カラムC] = 値3, ・・・・・

UPDATEで変更を加えるテーブルを指定し、SETで変更内容を具体的に指定します。

これにWHEREで条件を設定すると次のような記述となります。

UPDATE
     [テーブル名]
SET
     [カラムA] = 値1, [カラムB] = 値2, [カラムC] = 値3, ・・・・・
WHERE
     [検索条件1]
     AND/OR
     [検索条件2]
     AND/OR
     [検索条件3]
     ・
     ・
     ・

条件の設定は何件でも行えますが、複数の条件を設定する場合には条件を一つずつ分ける必要があります。

そしてその条件毎に”AND”もしくは”OR”で繋げて行きます。

サンプルコードで確認する

それでは実際にサンプルコードで動作を確認していきましょう。

今回のサンプルで使用するデータベーステーブルは次の通りです。

// sample_table
id          name                 type                 price
----------- -------------------- -------------------- -----------
          1 APPLE                Fruit                        200
          2 ORANGE               Fruit                        180
          3 COLA                 Drink                        120
          4 Coffee               Drink                        160

このテーブルを使って、UPDATEを行います。

サンプルコードは次の通りです。

UPDATE
     sample_table
SET
     price = 180
;
GO
(4 行処理されました)
SELECT * FROM sample_table;
GO
id          name                 type                 price
----------- -------------------- -------------------- -----------
          1 APPLE                Fruit                        180
          2 ORANGE               Fruit                        180
          3 COLA                 Drink                        180
          4 Coffee               Drink                        180


UPDATE
     sample_table
SET
     price = 160
WHERE
     name = 'COLA'
;
GO
(1 行処理されました)
SELECT * FROM sample_table;
GO
id          name                 type                 price
----------- -------------------- -------------------- -----------
          1 APPLE                Fruit                        200
          2 ORANGE               Fruit                        180
          3 COLA                 Drink                        160
          4 Coffee               Drink                        160


UPDATE
     sample_table
SET
     price = 100
WHERE
     type = 'Drink'
AND
     price > 120
;
GO
(1 行処理されました)
SELECT * FROM sample_table;
GO
id          name                 type                 price
----------- -------------------- -------------------- -----------
          1 APPLE                Fruit                        200
          2 ORANGE               Fruit                        180
          3 COLA                 Drink                        120
          4 Coffee               Drink                        100

まず一つ目(1行目~5行目)は通常のUPDATE(全件対象)、そして二つ目(18行目~24行目)はWHEREを使って一つだけ条件を設定したもの、更に三つ目(37行目~45行目)はWHEREを使って複数の条件を設定したものとなっています。

このように条件設定をすることで、全件を対象とした変更がされていないことが確認できます。

まとめ

今回はWHEREを使って条件を設定してUPDATEする方法について解説してみましたが、いかがでしたか?

UPDATE自体はそう難しいものでもありませんし、WHEREも基本的な形はすぐ覚えられるはずです。

WHEREとサブクエリを組み合わせる方法やLIKEを使った方法など、これより若干複雑になってくるクエリもありますので、基本はしっかりと抑えておくようにしましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。