SQL文のUPDATEステートメントといえば、SQL文を覚えたての頃から比較的によく使用する命令文ではないでしょうか。シンプルなSQLの構文で、DBに挿入されているデータの更新をすることができるSQLのUPDATEステートメントはとても便利なSQL文です。
役割としてはデータのアップデート(更新)そのものなのですが、実は普段使用しているシンプルなSQLステートメント以外にも「知らなかった!」と驚かれるようなテクニックがあります。
そこで今回の記事ではSQL UPDATEステートメントの使用方法を徹底的に解説していきます。使う機会の多いUPDATEステートメントのさまざまな使用方法を知り、思ったようにデータの更新ができるようにしていきましょう。
- SQLにおける「UPDATE」の概要
- SQL UPDATE文の使い方
SQLの「UPDATE」文とは
SQLの「UPDATE」ステートメントとは、データベース内のテーブルに挿入されている行(レコード)を更新するためのSQL文のことです。
UPDATEステートメントを含めたSQL文は「データベース言語」と呼ばれるもののため、普段インターネットでWEBアプリケーションを使用したり、スマートフォンでアプリを使用していると、見えにくいものです。しかし、気づかない間にいろいろな場面で使用しているはずです。
SQLの「UPDATE」ステートメントをどのようなタイミングで使用しているか見てみましょう。
- ブログ投稿サイト投稿した記事を書き直したとき
- すでに登録していたTwitterのプロフィール文を書き直したとき
- タスク管理アプリで未完了だったタスクの状態を「完了」にしたとき
このような例を見ていくとSQLのUPDATEステートメントを使用するべきタイミングがわかってきたのではないでしょうか。SQLのUPDATEステートメントは主にすでに登録されているデータを他のデータに置き換えたいというタイミングで使用することがほとんどです。
そもそも「UPDATE」という英単語自体、とても身近なものではないでしょうか。スマートフォンアプリのバージョンが変わった際にも「アップデート」という言葉が出てくるように、今のデータと違うものに置き換えるときに「UPDATE」ステートメントが用いられることとなります。
SQLの「UPDATE」文の使用方法
SQLのUPDATEステートメントについての概要を把握していただいた上で、次にSQLのUPDATEステートメントの具体的な使用方法をご紹介していきましょう。
本記事では、SQLのUPDATEステートメントを使用する環境としてMySQLというデータベース管理システムを使用します。MySQLに関する説明は割愛しますが、まだ使用したことがないという方はこれを機に導入してみてください。
今回使用するテーブルの確認
それでは今回UPDATEステートメントの説明をするにあたって、使用するテーブルを確認しましょう。もし可能であれば、実際にデータベース上に同様のテーブルを作成して動作を確認してみてくださいね。
carsテーブル
+------+-------------------+-------+ | id | name | price | +------+-------------------+-------+ | 1 | ベルファイア | 500 | | 2 | パッソ | 160 | | 3 | ミライース | 140 | | 4 | スカイライン | 400 | +------+-------------------+-------+
全てのテーブルカラムの更新
UPDATEステートメント
UPDATE cars SET price = 100;
UPDATEステートメントの実行結果
+------+-------------------+-------+ | id | name | price | +------+-------------------+-------+ | 1 | ベルファイア | 100 | | 2 | パッソ | 100 | | 3 | ミライース | 100 | | 4 | スカイライン | 100 | +------+-------------------+-------+
SQLのUPDATEステートメントで最も基本的な使用方法としては、上記で見たように
UPDATE テーブル名 SET カラム名 = 値;
とすることです。このような形でUPDATEステートメントを使用することによって、指定したカラムの値が全て、その後に記述した値へと置き換わることとなります。一気にテーブルカラムを更新したいという場合に便利な使用方法ですね。
ちなみにカラムとは、テーブルがデータの値を種類ごとに格納するための引き出しのようなものです。上記のcarsテーブルではpriceという名前のカラムが用意されています。
基本的にカラムの設定はテーブルを作成するごとに行い、1つのテーブルが複数のカラムを持つこともできます。carsテーブルであれば、price(値段)の他にcolor(色)、maker(メーカー)などのカラムを設定するのもいいですね。
カラムは自由に設定できるため、その時々に必要なテーブルを設計できるようにしていきましょう。
条件を指定して一部のカラムを更新
UPDATEステートメント
UPDATE cars SET name = ‘ラパン’ WHERE id = 1;
UPDATEステートメントの実行結果
+------+-------------------+-------+ | id | name | price | +------+-------------------+-------+ | 1 | ラパン | 100 | | 2 | パッソ | 100 | | 3 | ミライース | 100 | | 4 | スカイライン | 100 | +------+-------------------+-------+
指定した一部のデータのみを更新したいという場合には「WHERE」を使いましょう。
UPDATE テーブル名 SET カラム名 = 値 WHERE 条件式;
という書き方によって、条件式に当てはまるカラムのみを更新することができます。
数字データの計算に用いる
UPDATE cars SET price * 3 WHERE name = ‘ラパン’;
UPDATEステートメントの実行結果
+------+-------------------+-------+ | id | name | price | +------+-------------------+-------+ | 1 | ベルファイア | 300 | | 2 | パッソ | 100 | | 3 | ミライース | 100 | | 4 | スカイライン | 100 | +------+-------------------+-------+
今回の記事の総まとめとして、UPDATEの基本的な使用方法にWHEREを用いつつ、計算をしてみました。上記のような書き方をすることによって、数字の計算を行うこともできます。馴染みのない「*」という記号が出てきたかもしれませんが、これは算術演算子と呼ばれるもので、「×」に該当します。
- 「+」 →足し算
- 「-」 →引き算
- 「*」 →掛け算
- 「/」 →割り算
まとめ
今回の記事ではSQL UPDATEステートメントの使用方法を徹底的に解説していきました。他のSQLステートメントと組み合わせるといったような意外な使用方法もありましたね。使う機会の多いUPDATEステートメントのさまざまな使用方法を知り、思ったようにデータの更新ができるようにしていきましょう。
【関連記事】
▶︎【こんな使い方も?】SQL insertの使用方法を徹底的に解説
▶︎【初心者向け】SQLのDELETE文の使い方を現役SE目線で解説
▶︎【使いこなせる?】SQLのEXISTS文の使い方を初心者向けに解説
先ほどから「ステートメント」という言葉が頻出していますが、そもそもこの「ステートメント」とはどういう意味でしょうか。こちらも英単語の意味から捉えると「発言」・「宣言」・「声明」などの意味があるということがわかります。
そしてSQL文における「ステートメント」は、上記の意味でいうところの「宣言」に近いものです。今回の記事の「UPDATE」ステートメントであれば、SQL文によってデータの更新を「宣言」していると考えれば良いでしょう。