SQLを使うとデータベースのデータ(テーブルのレコード)を操作することができます。
データ操作の主な命令には
- データの取得
- データの挿入(追加)
- データの更新(修正)
- データの削除
があります。
前回はテーブルにレコードを挿入(追加)する方法について紹介しました。
そこで今回は、上記の基本的なデータ操作命令のうち、既にテーブルにあるデータ(レコード)を更新(修正)する方法について紹介します。
目次
使用するサンプルテーブル
本記事ではレコードを更新する際に以下のサンプルテーブルを使用します。
テーブル定義
サンプルとして使用するテーブルは、会員の情報を管理する「会員」と名前にします。
「会員」テーブルには「会員番号」「氏名」「メールアドレス」の3つの列を作成します。
列名 | 型 | 主キー |
---|---|---|
会員番号 | int | 〇 |
氏名 | varchar(20) | |
メールアドレス | varchar(200) |
テーブルを作成するCREATE文
1 2 3 4 5 6 |
CREATE TABLE [会員] ( [会員番号] int NOT NULL PRIMARY KEY, [氏名] varchar(20) NOT NULL, [メールアドレス] varchar(20) NOT NULL ); |
テーブルにレコードを挿入(追加)するINSERT文
1 2 3 4 5 6 7 8 9 10 11 12 |
INSERT INTO [会員] ( [会員番号], [氏名], [メールアドレス] ) VALUES ( 1, '山田 花子', 'hogehoge@example.co.jp' ); |
テーブルのレコードを更新(修正)するUPDATE
SQLでテーブルのレコードを更新(修正)する際は、UPDATEステートメントを使用します。
UPDATEステートメントの構文
UPDATEステートメントは、以下の構文で使用します。
1 2 3 4 5 6 7 |
UPDATE テーブル名 SET ( 列名1 = 値1, 列名2 = 値2, 列名3= 値3... ) WHERE [更新するレコードの条件] |
UPDATEステートメントでは、UPDATEに続けてテーブル名を記述します。
例えば、CUSTOMERというテーブルであれば
1 |
UPDATE CUSTOMER |
となります。
テーブル名を記述した後には、テーブルのどの列にどのような値を設定(登録)するかを指定します。
テーブルの列に値を設定する際にはSET句を使用します。
SET句では列名=値の形式で更新(修正)する列に値を指定します。
例えば、CUSTOMER_NAMEという列の値を「顧客名を更新」にするのであれば
1 |
SET (CUSTOMER_NAME = '顧客名を更新') |
となります。
SET句には、更新(修正)する列を複数指定することができます。
例えば、CUSTOMER_NAME列の値を「顧客名を更新」、CUSTOMER_TEL列の値を「999-999-9999」にするのであれば
1 |
SET (CUSTOMER_NAME = '顧客名を更新', CUSTOMER_TEL = '999-999-9999') |
となります。
SET句で列の更新する値を指定した後は、更新する対象のレコードをWHERE句で指定します。
WHERE句には「列名 = 条件」の形式で、更新(修正)対象となるレコードを指定します。
例えば、CUSTOMER_ID列の値が「100」のレコードを更新対象とする場合は
1 |
WHERE CUSTOMER_ID = 100 |
となります。
サンプルテーブルのレコードの更新(修正)
UPDATEステートメントの構文が確認できましたので、サンプルテーブルのレコードを更新してみます。
ここでは、会員テーブルに挿入(追加)した会員番号が「1」のレコードの氏名を「鈴木 花子」に更新します。
会員テーブルのレコードを更新(修正)するSQL
会員テーブルのレコードを更新(修正)するSQLは、以下のようになります。
1 2 3 4 5 6 7 |
UPDATE [会員] SET ( [氏名] = '鈴木 花子' ) WHERE [会員番号] = 1; |
上記のSQLを実行すると会員テーブルの会員番号が「1」の氏名が「山田 花子」のレコードの氏名が「鈴木 花子」に変更されます。
会員番号 | 氏名 | メールアドレス |
---|---|---|
1 | 鈴木 花子 | hogehoge@example.co.jp |
WHERE句を省略した場合の動作
UPDATEステートメントでWHERE句を省略した場合は、更新するテーブルのすべてのレコードが更新の対象となります。