\ お問い合わせはこちら! /

【SQL】UPDATE で既存のレコードを更新しよう!

  • SQL で既存のレコードを更新したい

このような方に向けて書きました。

すでにあるテーブルのレコードを書き換えるクエリがUPDATEです。

分量としてはあまり多くないので、ざっと全体像を俯瞰してマスターしていきましょう。

UPDATE 文の基本

既存のレコードの値を変更するために使われるのがUPDATEです。

構文は以下の通り。

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

各要素の意味をまとめると以下の通りです。

効果
table_name更新対象のテーブル名
SET column1 = value1更新する列と新しい値を指定
WHERE condition更新する行の条件
句と効果

最後のWHERE句を指定しないと、テーブル内の全行が更新されるので注意してください。

また、一度UPDATEすると元に戻せないので、更新前にバックアップをとりましょう。

UPDATE の具体例

ここからは実際のクエリ例を示しながら、UPDATEの挙動を確認していきましょう。

単一の列を更新する場合

特定の列だけを更新したい場合には、以下のクエリを実行します。

UPDATE employees
SET salary = 50000
WHERE employee_id = 1;

employeesテーブルのemployee_id=1のフィールドを取得して、salary列の値を50000に変更します。

クエリ実行例

元々、employeesテーブルが次のようなものだったとします。

employee_idnamepositionsalary
1John SmithManager45000
2Jane DoeDeveloper55000
3Alice JonesDesigner48000
4Bob BrownTester42000
クエリ実行前

クエリの実行結果は以下になります。

employee_idnamepositionsalary
1John SmithManager50000
2Jane DoeDeveloper55000
3Alice JonesDesigner48000
4Bob BrownTester42000
クエリ実行後

複数の列を更新する場合

複数列を更新する場合には、,区切りで列と値の組み合わせを列挙していきます。

UPDATE employees
SET salary = 50000, job_title = 'Senior Developer'
WHERE employee_id = 1;

employeesテーブルのemployee_id=1のフィールドを取得して、salary列とjob_titleの値を書き換えます。

クエリ実行例

クエリ実行前のemployeesテーブルが以下だったとします。

employee_idnamepositionsalary
1John SmithManager45000
2Jane DoeDeveloper55000
3Alice JonesDesigner48000
4Bob BrownTester42000
クエリ実行前

クエリの実行結果は以下になります。

employee_idnamepositionsalary
1John SmithManager50000
2Jane DoeDeveloper55000
3Alice JonesDesigner48000
4Bob BrownTester42000
クエリ実行後

全行を更新する場合

全行を更新するには、WHEREを省略します。

UPDATE employees
SET salary = salary * 1.1;

上記の例では、salaryカラムの全行を10%分増やします。

クエリ実行例

クエリ実行前のemployeesテーブルが以下だったとします。

employee_idnamepositionsalary
1John SmithManager45000
2Jane DoeDeveloper55000
3Alice JonesDesigner48000
4Bob BrownTester42000
クエリ実行前

クエリの実行結果は以下になります。

employee_idnamepositionsalary
1John SmithManager49500
2Jane DoeDeveloper60500
3Alice JonesDesigner52800
4Bob BrownTester46200
クエリ実行後

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

karo@プログラマのアバター karo@プログラマ プログラマ

「書くことで人の役にたつ」をモットーに活動中。
本職はプログラマで、Python(Django)が得意。最近ではフロント側の技術に触れる機会も増えてきました。
基本情報技術者試験合格。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)