この記事には、基本的なSQL UPDATE
が含まれています 初心者がデータベーステーブルのデータを更新するために使用できるステートメント。
単一の列を更新する
SQL UPDATE
の基本的な例を次に示します。 ステートメント。
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
この場合、LastName
という単一の列の値を更新しました 。
UPDATE
ステートメントはUPDATE
で始まります 、その後にテーブル名(つまり、更新するデータを含むテーブル)が続きます。
次に、SET
があります キーワードに続いて、更新する列と新しい値を等号(=
で区切って指定) )演算子。
常にWHERE
を含める必要があります すべての行を同じ値で更新する場合を除いて、句。
はい、あなたはその権利を読みます。 WHERE
を省略します 句は、すべての行を同じ値で更新します。
ほとんどのデータベース管理システム(DBMS)には、UPDATE
で使用できる他のさまざまなオプションがあります。 ステートメントですが、ここにリストされているものが最も一般的に使用されているものです。
複数の列を更新する
複数の列を更新するには、各列と値のペアをカンマで区切ります。
UPDATE Owners
SET LastName = 'Stallone',
Email = '[email protected]'
WHERE OwnerId = 3;
例
この例では、テーブルを更新します。
まず、テーブルの内容を選択しましょう。
SELECT * FROM Owners;
結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Simpson | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
ナンシーシンプソンは最近結婚し、彼女の名前を変更したので、Simpson
を更新します Stallone
へ 。
次に、その列を更新してから、テーブルをもう一度選択します。
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners;
結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
列が指定どおりに更新されていることがわかります。
複数の列を更新する
複数の列を更新する例を次に示します。
UPDATE Owners
SET LastName = 'Biden',
Email = '[email protected]'
WHERE OwnerId = 4;
SELECT * FROM Owners;
結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Biden | (349) 611-8908 | [email protected] | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
この場合、所有者4の名前とメールアドレスを更新しました。
注意! WHERE
を忘れる 条項
UPDATE
自分の知恵を守らないと、声明は非常に危険な声明になる可能性があります。 WHERE
を省略した場合 条項、すべてを更新します テーブルの行。
前の例をもう一度やりましょう。ただし、今回はWHERE
を含めるのを忘れます。 条項。
UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners;
結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Stallone | (308) 555-0100 | [email protected] | | 2 | Bart | Stallone | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Stallone | (349) 611-8908 | NULL | | 5 | Woody | Stallone | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
おっと!今、みんなの名前はスタローンです!
実際にテーブル内のすべての行を更新することを意図している場合もありますが、そのような場合は通常非常にまれです。
アドホッククエリを実行している場合は、簡単なSELECT
を実行することをお勧めします UPDATE
と同じ条件を使用するステートメント UPDATE
を実際に実行する前の操作 操作。
SELECT * FROM Owners
WHERE OwnerId = 4;
結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
これにより、更新される正確な行が表示されます。正しい行が返されることを確認したら、同じWHERE
を使用して続行できます。 UPDATE
の句 ステートメント。