テーブルのレコードを更新する場合に利用するUPDATE文について、初心者向けにわかりやすく1分で解説します。

前提となる知識は一切必要ありません。このページ内を読めば自分ひとりでテーブルのレコード更新行うことができるようサンプルコード付きでご説明します。
プログラマーやデータベースエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識。是非最後までご覧ください。

SQL文の基本ルール(大文字/小文字の区別、コメントの付与など)を始めに学んでおきたい方は以下の記事を先にご覧ください。
SQL:UPDATE文
UPDATE文は対象テーブルのレコードを更新する場合に利用します。

例えばINSERT文でレコードを誤って登録してしまった場合にUPDATE文を利用するとその誤りを修正することが可能になります。
構文ルールは以下の通り。
-- 全レコード(全行)更新 UPDATE テーブル名 SET 列名 = 値; -- 指定レコード更新 UPDATE テーブル名 SET 列名 = 値 WHERE 条件式; --複数列更新 UPDATE テーブル名 SET 列名 = 値, 列名 = 値, 列名 = 値 WHERE 条件式;

1つひとつ順を追って解説します。
以下のようなテーブルが存在することを前提にご説明していきます。

UPDATE:全レコード更新

まずは最もシンプルなWHERE句を用いないUPDATE文から解説します。
通常、UPDATE文はWHERE句とセットで用いますがまずは理解促進のためWHERE句なしの場合のUPDATE文について解説します。
-- 全レコード(全行)更新 UPDATE テーブル名 SET 列名 = 値;
上記のようなUPDATE文を発行すると、指定したテーブルのすべてのレコードがSET句の値で更新されます。
UPDATE PointList SET Japanese = 100; /* Japanese列がすべて「100」に更新される +----+------+-------+----------+------+---------+ | ID | Name | Class | Japanese | Math | English | +----+------+-------+----------+------+---------+ | 1 | 佐藤 | A | 100 | 100 | 85 | | 2 | 鈴木 | A | 100 | 70 | 70 | | 3 | 高橋 | A | 100 | 70 | 65 | | 4 | 中村 | A | 100 | 65 | 85 | | 5 | 小林 | B | 100 | 90 | 65 | | 6 | 山口 | B | 100 | 85 | 85 | | 7 | 田中 | B | 100 | 90 | 65 | | 8 | 伊藤 | B | 100 | 90 | NULL | +----+------+-------+----------+------+---------+ */

SET句で "Japanese = 100" と記述しているのですべてのレコードのJapanaese列が100で更新されます。
これが最も基本的なUPDATE文の動作です。
ただしほとんどの場合、すべてのレコードを一度に更新するようなことはありません。基本的には更新したいレコードを指定してUPDATE文を実行します。
UPDATE:WHERE句
UPDATE文でWHERE句を用いる場合の構文ルールは以下の通り。
-- 指定レコード更新 UPDATE テーブル名 SET 列名 = 値 WHERE 条件式;
先ほどと同様、以下のようなテーブルを例に解説します。


例として、Class列が「A」のレコードのみJapanaese列を「100」にUPDATEしてみましょう。
UPDATE PointList SET JAPANESE = 100 where class ='A'; /* Class「A」のみJapanaese列がすべて「100」に更新される +----+------+-------+----------+------+---------+ | ID | Name | Class | Japanese | Math | English | +----+------+-------+----------+------+---------+ | 1 | 佐藤 | A | 100 | 100 | 85 | | 2 | 鈴木 | A | 100 | 70 | 70 | | 3 | 高橋 | A | 100 | 70 | 65 | | 4 | 中村 | A | 100 | 65 | 85 | | 5 | 小林 | B | 70 | 90 | 65 | | 6 | 山口 | B | 90 | 85 | 85 | | 7 | 田中 | B | 70 | 90 | 65 | | 8 | 伊藤 | B | 70 | 90 | NULL | +----+------+-------+----------+------+---------+
ご覧のようにWHERE句で指定した条件に合致するレコードのみUPDATEがなされました。

WHERE句を用いない場合、すべてのレコードが一気に更新されてしまうため、ここは細心の注意を払う必要があります。
ただし、これだけでは不十分です。最後に、Japanaese列だけでなく、Math列やEnglish列に対しても同様に更新をかけたいような場合についてご説明します。
UPDATE文:複数列の更新
UPDATE文で複数列(複数カラム)の更新を行いたい場合は以下のようにSET句に「,」区切りで列名を順に指定します。
--複数列更新 UPDATE テーブル名 SET 列名 = 値, 列名 = 値, 列名 = 値 WHERE 条件式;

こちらも先ほどと同じテーブルを対象に以下のようなSQL文を実行してみます。
-- Class「A」の人はすべて100点にする UPDATE PointList SET Japanese = 100, Math = 100, English = 100 WHERE Class = 'A'; /* +----+------+-------+----------+------+---------+ | ID | Name | Class | Japanese | Math | English | +----+------+-------+----------+------+---------+ | 1 | 佐藤 | A | 100 | 100 | 100 |←すべて「100」に更新 | 2 | 鈴木 | A | 100 | 100 | 100 |←すべて「100」に更新 | 3 | 高橋 | A | 100 | 100 | 100 |←すべて「100」に更新 | 4 | 中村 | A | 100 | 100 | 100 |←すべて「100」に更新 | 5 | 小林 | B | 70 | 90 | 65 | | 6 | 山口 | B | 90 | 85 | 85 | | 7 | 田中 | B | 70 | 90 | 65 | | 8 | 伊藤 | B | 70 | 90 | NULL | +----+------+-------+----------+------+---------+ */
ご覧のようにSET句で指定したJapanaese列~English列の値が一度に更新されました。
システムエンジニアを目指したい方は
システムエンジニアを目指す方や、IT知識を1から身につけたい方は以下のページをご覧ください。
正直どこから学び始めればよいかわからない。どのように勉強していけば、エンジニアとしてのスキルが磨けるか?が分からない・・・という方は必見です。

システムエンジニア向けに「できるエンジニア」になる方法を1から解説しておりますので、是非ご覧ください。