テーブルのデータ(レコード)を更新する UPDATE [SQLServer]

SQL Server ロゴ

前回はSQLのINSERTステートメントを使用して、テーブルにデータ(レコード)を追加する方法について紹介しました。

データベースのデータを操作するアプリケーションでは、データの挿入と同様にデータの更新(変更)も行います。

そこで今回は、既にテーブルにあるデータを更新する方法について紹介します。

記事内で使用するサンプルテーブル

本記事では、前回のINSERTステートメントの実行例で使用した「書籍」テーブルを使用します。

テーブル定義

テーブルには、「書籍ID」「書籍名」「ISBN」の3つの列を作成します。

列名 データ型 NULLを許容 主キー
書籍ID int NO
書籍名 nvarchar(100) NO
ISBN char(21) NO
備考 nvarchar(200) YES

テーブルを作成するCREATE文(SQL)

テーブルを作成するSQLは次のようになります。

テーブルにデータを挿入するINSERT文(SQL)

テーブルに事前にデータ(行)を挿入しておくSQLは次のようになります。

テーブルのデータ(レコード)を更新する命令(ステートメント)

テーブルのデータを更新する際は「UPDATE」ステートメントを使用します。

UPDATEステートメントの構文は次のようになります。

UPDATEステートメントでは、まず「UPDATE」と記述し、その後に空白文字(スペースや改行など)を挟んで更新するテーブルを記述します。

テーブル名の後には「SET」を記述します。

SETの後には、テーブルの列名と列に設定する値をイコール「=」でつなげて指定します。
複数の列、値がある場合は、それをカンマ「,」で区切って記述します。

各列に設定する値の後は、WHERE句を記述して更新対象となるレコード(行)を指定する条件式を記述します。

UPDATEステートメントは以下のように改行して記述すると見やすくなります。

UPDATEステートメントは、以下のようにFROM句を記述しても同様に実行することができます。

FROM句に記述するテーブルには別名を使うこともできます。

データ更新SQLの例

以下に「書籍」テーブルのデータ(レコード)を更新するSQLの例を示します。

上記のSQLを実行すると、「書籍ID」IDが「1」の「よくわかる SQL Server 入門」という書籍情報の「備考」が新しい値の「Microsoft のデータベース SQL Server 関連の入門書」に更新されます。

UPDATEステートメントのWHERE句の指定

UPDATEステートメントで使用するWHERE句では、更新対象となる行の条件を指定します。
WHERE句で条件を指定しない場合は、テーブルのすべての行が更新の対象となります。

これを利用して、例えばテーブルのIDの値を一括して更新するようなことができます。

以下に「書籍」テーブルの「書籍ID」を現在の値に「100」を加算した値に更新する例を示します。