PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
生徒
「PostgreSQLのUPDATEって、何をするためのものなんですか?」
先生
「UPDATEは、すでに表に入っているデータを書き直すための命令です。名簿の年齢や住所を消しゴムで直すイメージですね。」
生徒
「間違えて全部消えたりしませんか? パソコンが苦手なので心配です。」
先生
「ポイントを押さえれば大丈夫です。どこを直すのか、誰を直すのかを一つずつ確認しながら説明します。」
1. SQLとは何か?
SQLは、データベースと呼ばれる「情報を整理して保管する箱」に対して指示を出すための言葉です。PostgreSQLは、そのSQLを使って操作できる代表的なデータベースです。
SQLを使うことで、表の中の情報を見たり、新しく追加したり、内容を変更したりできます。UPDATE文は、その中でも「変更」を担当します。
2. UPDATE文の役割
UPDATE文は、すでに存在しているデータを新しい内容に書き換えるための命令です。
現実でたとえると、名簿に書いてある年齢が一つ増えたので、数字を書き直す作業にあたります。行を消して書き直すのではなく、必要な部分だけを修正します。
3. 今回使うテーブルを確認しよう
以下のusersテーブルを使って説明します。会員の情報が入っている表です。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
4. UPDATE文の基本の形
UPDATE文の基本的な形はとてもシンプルです。
UPDATE users
SET age = 26
WHERE id = 1;
SETは「どこを直すか」、WHEREは「誰を直すか」を指定します。ここでは、idが1の山田太郎さんの年齢を26に変更しています。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 26 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
5. 部分更新とは何か
部分更新とは、1行の中の一部の項目だけを変更することです。
UPDATE文では、SETで指定した列だけが変更され、それ以外の情報はそのまま残ります。これは名簿の「名前はそのまま、年齢だけ直す」作業と同じです。
6. 複数の列を同時に更新する
UPDATE文では、複数の項目を一度に変更することもできます。
UPDATE users
SET age = 20, email = 'hanako_new@example.com'
WHERE id = 2;
カンマで区切ることで、年齢とメールアドレスを同時に変更できます。
7. 条件更新とは何か
条件更新とは、WHEREを使って「条件に合う人だけ」をまとめて更新する方法です。
たとえば「20歳未満の人を全員20歳にする」といった操作ができます。
UPDATE users
SET age = 20
WHERE age < 20;
条件を正しく書くことで、狙ったデータだけを安全に変更できます。
8. WHEREを書かないとどうなるか
UPDATE文で最も注意が必要なのがWHEREの書き忘れです。
WHEREを書かないと、表の中のすべての行が更新されてしまいます。名簿全員の年齢を同じ数字に書き換えるようなものなので、とても危険です。
初心者のうちは「UPDATEには必ずWHEREを書く」と覚えておくと安心です。
9. UPDATE文を学ぶ意味
UPDATE文を使えるようになると、データを正しい状態に保てるようになります。
情報は時間とともに変わります。その変化に対応するために、UPDATE文は欠かせない存在です。
まずは一人分、次に条件付き、と段階的に慣れていきましょう。