SQLでテーブルのレコードを更新(修正)する UPDATE

SQLを使うとデータベースのデータ(テーブルのレコード)を操作することができます。

データ操作の主な命令には

  • データの取得
  • データの挿入(追加)
  • データの更新(修正)
  • データの削除

があります。

前回はテーブルにレコードを挿入(追加)する方法について紹介しました。

SQLのSELECT文でデータ(レコード)を取得(抽出)する
SQLを使用すると、データベースに対して様々な命令を与えることができます。データ(レコード)を抽出したり、データを追加・変更・削除したり、デ...

そこで今回は、上記の基本的なデータ操作命令のうち、既にテーブルにあるデータ(レコード)を更新(修正)する方法について紹介します。

使用するサンプルテーブル

本記事ではレコードを更新する際に以下のサンプルテーブルを使用します。

テーブル定義

サンプルとして使用するテーブルは、会員の情報を管理する「会員」と名前にします。
「会員」テーブルには「会員番号」「氏名」「メールアドレス」の3つの列を作成します。

列名 主キー
会員番号 int
氏名 varchar(20)
メールアドレス varchar(200)

テーブルを作成するCREATE文

テーブルにレコードを挿入(追加)するINSERT文

テーブルのレコードを更新(修正)するUPDATE

SQLでテーブルのレコードを更新(修正)する際は、UPDATEステートメントを使用します。

UPDATEステートメントの構文

UPDATEステートメントは、以下の構文で使用します。

UPDATEステートメントでは、UPDATEに続けてテーブル名を記述します。
例えば、CUSTOMERというテーブルであれば

となります。
テーブル名を記述した後には、テーブルのどの列にどのような値を設定(登録)するかを指定します。
テーブルの列に値を設定する際にはSET句を使用します。
SET句では列名=値の形式で更新(修正)する列に値を指定します。
例えば、CUSTOMER_NAMEという列の値を「顧客名を更新」にするのであれば

となります。
SET句には、更新(修正)する列を複数指定することができます。
例えば、CUSTOMER_NAME列の値を「顧客名を更新」、CUSTOMER_TEL列の値を「999-999-9999」にするのであれば

となります。
SET句で列の更新する値を指定した後は、更新する対象のレコードをWHERE句で指定します。
WHERE句には「列名 = 条件」の形式で、更新(修正)対象となるレコードを指定します。
例えば、CUSTOMER_ID列の値が「100」のレコードを更新対象とする場合は

となります。

サンプルテーブルのレコードの更新(修正)

UPDATEステートメントの構文が確認できましたので、サンプルテーブルのレコードを更新してみます。
ここでは、会員テーブルに挿入(追加)した会員番号が「1」のレコードの氏名を「鈴木 花子」に更新します。

会員テーブルのレコードを更新(修正)するSQL

会員テーブルのレコードを更新(修正)するSQLは、以下のようになります。

上記のSQLを実行すると会員テーブルの会員番号が「1」の氏名が「山田 花子」のレコードの氏名が「鈴木 花子」に変更されます。

会員番号 氏名 メールアドレス
1 鈴木 花子 hogehoge@example.co.jp

WHERE句を省略した場合の動作

UPDATEステートメントでWHERE句を省略した場合は、更新するテーブルのすべてのレコードが更新の対象となります。