本記事ではUPDATE、について解説します。
前回はINSERT文について解説しました。
今回ではUPDATEでデータを更新する方法、についてみていきましょう。
SQLのUPDATEとは?
UPDATEとは、ベータベースのデータを更新するためのもののことです。
UPDATEを使うことで、既存データを新しく書き換えることができるようになります。
たとえば、テストの点数をデータベースに格納していて、後で点数が違うことが判明した場合、UPDATEで書き換えることが可能です。
このように、データの更新ができるのが、UPDATEですね。
SQLのUPDATEの使い方
UPDATEの具体的な使い方についてみていきましょう。
次の項目に従って解説していきます。
- UPDATEでデータを更新する
- UPDATEでnull値にデータを更新する
- UPDATEで複数例同時に更新する
- UPDATEで複数行同時に更新する
なお、今回は『SQL入門編1』で作成したテーブルを使って解説します。『SQL入門編1』で演習用のテーブルを作っていない方は、【SQL入門編1】初心者必見!SQLのクエリの書き方を学ぼうを読んで予め作成してくださいね。
また、本記事は前回の【SQL初級編1】INSERTでテータベースにデータを追加しようの続きになっているので、こちらを先にお読み下さい。
UPDATEでデータを更新する
UPDATEでデータを更新する方法をみていきます。
○コード例
UPDATE TEST.Student set TestScore=80 WHERE id=11;
SELECT * FROM TEST.Student WHERE id=11;
○実行結果
上記のコードでは、UPDATE文によって、idが11のレコードのTestScoreカラムを80に変更しています。
UPDATE文は次のような書式で記述します。
UPDATE {テーブル名} set {変更したいカラム名}={変更する値} WHERE {変更したいレコードのid}={id}
UPDATE文を使う場合は、基本的にWHERE文とセットで使います。
WHERE文を使うことで、UPDATEで変更するレコードを指定することが可能です。
これがUPDATE文の基本的な使い方となります。
もう一つ例をみておきましょう。
○コード例
UPDATE TEST.Student set name="山田" WHERE id=11;
SELECT * FROM TEST.Student WHERE id=11;
○実行結果
今度は、UPDATE文によって、idが11のレコードのnameカラムを”山田”に変更しています。
UPDATEでnull値にデータを更新する
今度はUPDATEでnull値にデータを更新する方法をみていきましょう。
○コード例
UPDATE TEST.Student set TestScore=NULL WHERE id=11;
SELECT * FROM TEST.Student WHERE id=11;
○実行結果
null値に更新する場合、{カラム名}=NULL、と記述すれば良いだけです。
これで、idが11のレコードのTestScoreカラムを空欄にすることができました。
UPDATEで複数例同時に更新する
今度はUPDATEで複数のカラムを同時に更新する方法をみていきましょう。
○コード例
UPDATE TEST.Student set name="藤井", TestScore=65 WHERE id=12;
SELECT * FROM TEST.Student WHERE id=12;
○実行結果
複数カラムを更新する場合は、SETの値に、カンマ区切りでカラムを複数指定します。
上記のコードでは、nameを「藤井」にしてTestScoreを「65」に変更しました。
このようにUPDATE文は複数のカラムを同時に変更することも可能です。
UPDATEで複数行同時に更新する
最後に、UPDATEで複数行を同時に更新する方法をみていきましょう。
○コード例
UPDATE TEST.Student set TestScore=40 WHERE id=13 OR id=14;
SELECT * FROM TEST.Student WHERE id=13 OR id=14;
○実行結果
上記のコードでは、idが13のレコードと14のレコードを同時に更新しています。
このように、WHERE文でORを使うことで、更新するレコードを2つ以上指定できます。
UPDATE文はWHEREを使うことで、更新するレコードを自由に変更できることを覚えましょう。
UPDATEを使う場合の注意点
UPDATE文を使う際の注意点を解説します。
UPDATE文はWHEREを使わずに書くと、全てのカラムのデータが更新されてしまいます。
そのため、WHEREを使って、更新するレコードを指定するのを忘れないようにしましょう。
また、UPDATE文は一度実行してしまうと、戻すことができません。
そのため、重要なデータベースの場合、バックアップを取ってあるか確認することが大切です。
また、UPDATE文を実行する前に、一度SELECTを使ってどのレコードが更新の対象となるか確認しましょう。
たとえば、以下のようなコードを書く場合は、
UPDATE TEST.Student set TestScore=40 WHERE name LIKE "%石%"
次のSELECT文でどのレコードが更新されるか確認しましょう。
SELECT * FROM TEST.Student WHERE name LIKE "%石%"
まとめ
本記事では、UPDATEついて解説しました。
UPDATEによってデータを更新する方法が、お分かり頂けたかと思います。
データを更新したい場合、UPDATE文は必ず使うので、使い方を覚えておきましょう。
また、UPDATEを使う際はWHEREで更新するレコードを指定することをお忘れなく。
次回は、DELETE文でデータを削除する方法を解説していきます。