この記事には、基本的な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 = 'example@sqldat.com'
WHERE OwnerId = 3; 例
この例では、テーブルを更新します。
まず、テーブルの内容を選択しましょう。
SELECT * FROM Owners; 結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | example@sqldat.com | | 2 | Bart | Pitt | (231) 465-3497 | example@sqldat.com | | 3 | Nancy | Simpson | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | example@sqldat.com | +-----------+-------------+------------+----------------+-------------------+
ナンシーシンプソンは最近結婚し、彼女の名前を変更したので、Simpsonを更新します Stalloneへ 。
次に、その列を更新してから、テーブルをもう一度選択します。
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners; 結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | example@sqldat.com | | 2 | Bart | Pitt | (231) 465-3497 | example@sqldat.com | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | example@sqldat.com | +-----------+-------------+------------+----------------+-------------------+
列が指定どおりに更新されていることがわかります。
複数の列を更新する
複数の列を更新する例を次に示します。
UPDATE Owners
SET LastName = 'Biden',
Email = 'example@sqldat.com'
WHERE OwnerId = 4;
SELECT * FROM Owners; 結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | example@sqldat.com | | 2 | Bart | Pitt | (231) 465-3497 | example@sqldat.com | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Biden | (349) 611-8908 | example@sqldat.com | | 5 | Woody | Eastwood | (308) 555-0112 | example@sqldat.com | +-----------+-------------+------------+----------------+-------------------+
この場合、所有者4の名前とメールアドレスを更新しました。
注意! WHEREを忘れる 条項
UPDATE 自分の知恵を守らないと、声明は非常に危険な声明になる可能性があります。 WHEREを省略した場合 条項、すべてを更新します テーブルの行。
前の例をもう一度やりましょう。ただし、今回はWHEREを含めるのを忘れます。 条項。
UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners; 結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Stallone | (308) 555-0100 | example@sqldat.com | | 2 | Bart | Stallone | (231) 465-3497 | example@sqldat.com | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Stallone | (349) 611-8908 | NULL | | 5 | Woody | Stallone | (308) 555-0112 | example@sqldat.com | +-----------+-------------+------------+----------------+-------------------+
おっと!今、みんなの名前はスタローンです!
実際にテーブル内のすべての行を更新することを意図している場合もありますが、そのような場合は通常非常にまれです。
アドホッククエリを実行している場合は、簡単なSELECTを実行することをお勧めします UPDATEと同じ条件を使用するステートメント UPDATEを実際に実行する前の操作 操作。
SELECT * FROM Owners
WHERE OwnerId = 4; 結果:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | example@sqldat.com | +-----------+-------------+------------+----------------+-------------------+
これにより、更新される正確な行が表示されます。正しい行が返されることを確認したら、同じWHEREを使用して続行できます。 UPDATEの句 ステートメント。