SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL ServerのUPDATE文とは?基本構文から実用例まで徹底解説

SQL Server(Transact-SQL)におけるUPDATEコマンドは、データベース内のテーブルに存在する既存レコードを更新するために使用します。UPDATEコマンドには主に3つの構文があり、従来型のスタイルで更新するのか、それとも別のテーブルのデータを使って更新するのかによって使い分けます。

UPDATEコマンドの構文

まずは、SQL Serverでテーブルを更新する際の基本構文です。

UPDATE bang
SET cot1 = bieuthuc1,
    cot2 = bieuthuc2,
    ...
[WHERE dieu_kien];

次に、SELECT文と組み合わせて、別のテーブルのデータでテーブルを更新する構文です。

UPDATE bang1
SET cot1 = (SELECT bieuthuc1
            FROM bang2
            WHERE dieu_kien)
[WHERE dieu_kien];

さらに、別テーブルのデータで更新するためのもうひとつの構文として、INNER JOINを使用する書き方もあります。

UPDATE bang1
SET bang1.cot = bang2.bieuthuc1
FROM bang1
INNER JOIN bang2
ON (bang1.cot1 = bang2.cot1)
[WHERE dieu_kien];

パラメータ(引数)の説明

cot1、cot2
更新対象となる列名です。

bieuthuc1、bieuthuc2
cot1、cot2に設定する新しい値です。cot1にはbieuthuc1が、cot2にはbieuthuc2がそれぞれ代入されます。

WHERE dieu_kien
省略可能な条件です。ここで指定した条件を満たすレコードのみが更新されます。

使用例

例1:1つの列を更新する

UPDATE nhanvien
SET ho = 'Johnson'
WHERE nhanvien_id = 10;

このUPDATEコマンドは、nhanvien_idが10であるレコードの姓(ho)を「Johnson」に更新します。

例2:複数の列を更新する

1つのUPDATEコマンドで複数の列を同時に更新することもできます。

UPDATE nhanvien
SET ten = 'Kyle',
    nhanvien_id = 14
WHERE ho = 'Johnson';

複数の列を更新したい場合は、列と値のペアをカンマで区切って記述するだけです。上記のコマンドでは、姓が「Johnson」であるレコードに対して、名前(ten)を「Kyle」に、nhanvien_idを14に更新します。

例3:別のテーブルのデータで更新する

続いて、別のテーブルのデータを使ってテーブルを更新する例を見てみましょう。

UPDATE nhanvien
SET ten = (SELECT ten
           FROM danhba
           WHERE danhba.ho = nhanvien.ho)
WHERE nhanvien_id > 95;

この例では、nhanvien_idが95より大きいすべてのレコードが更新対象となります。従業員の姓が住所録(danhba)テーブルにも存在して一致する場合、住所録側の名前が従業員テーブルの名前にコピーされます。

このUPDATEコマンドは、先ほど紹介したINNER JOINを使った構文で、以下のように書き換えることもできます。

UPDATE nhanvien
SET nhanvien.ten = danhba.ten
FROM nhanvien
INNER JOIN danhba
ON (nhanvien.ho = danhba.ho)
WHERE nhanvien_id > 95;

UPDATE文を使う際の注意点

UPDATE文を実行する際は、WHERE句の指定を忘れないようにしましょう。WHERE句を省略すると、テーブル内のすべてのレコードが更新されてしまいます。特に本番環境で実行する場合は、事前にSELECT文で対象レコードを確認したり、トランザクションを使用してロールバックできる状態にしておくと安全です。

  1. SQL ServerのPIVOT句とは?クロス集計で行を列に変換する方法を実例付きで解説

    SQL Server(Transact-SQL)では、PIVOT句を使用することで、クロス集計(ピボットテーブル)を作成できます。PIVOT句は、テーブル内の行データを列に変換し、集計結果を見やすい形式で表示するための強力な機能です。 下図は、合計値を計算し、行データを列に変換して表示する例です。 PIVOT句の基本構文 SELECT cot_dautien AS bidanh_cot_dautien, [giatri_chuyen1], [giatri_chuyen2], … [giatri_chuyen_n] FROM ( SELECT bang_nguon.cot1

  2. SQL ServerのSELECT文の使い方を徹底解説!基本構文と実践例まとめ

    このチュートリアルでは、SQL Server(T-SQL)におけるSELECT文の使い方を、構文と具体的なサンプルコードとともにわかりやすく解説します。 SELECTは、SQL Serverデータベース内の1つまたは複数のテーブルからデータを取得するために使用される、最も基本的かつ重要なコマンドです。 SELECT文の基本構文 最もシンプルな形式では、SELECT文の構文は以下の通りです。 SELECT 式 FROM テーブル [WHERE 条件]; 一方、すべての機能を含んだ完全な形式のSELECT文は次のように記述します。 SELECT [ALL | DISTINCT] [TOP (先頭