【PostgreSQL】SELECTした結果をUPDATEする方法をわかりやすく解説!

スポンサーリンク
この記事は約5分で読めます。

※ この記事にはアフィリエイトリンクが含まれます

データベースを操作する際に、「SELECTした結果をもとにUPDATEする」という操作は、非常に一般的です。例えば、在庫管理システムでは、売上データを元に商品の在庫数を更新したり、分析システムでは、条件に応じて特定のフラグを設定したりすることがあります。

PostgreSQLは、このような要件に応えるための柔軟で強力な機能を提供しています。単純な値の更新だけでなく、複雑な条件を含む更新や、他のテーブルの値を参照した更新も簡単に実現できます。

この記事では、PostgreSQLでSELECTした結果を用いてUPDATEを行う方法を解説します。基本的な構文から実践的な例までをカバーし、わかりやすく解説していきます!

これから本格的にプログラミングを学びたい方へ

もしあなたがSQLのスキルだけでなく、「正規表現だけじゃなく、もっと本格的にプログラミングを学びたい」と思っているなら、実務レベルでのスキルが身につく「RareTECH」という学習サービスがおすすめです。

なんくる
なんくる

本気でやってみたい。でも何から始めたらいいか分からない。そんなときこそ、信頼できる学習環境に頼っていいんです。一人で悩む時間を、実務レベルの力に変えられます!

少しでも気になった方は、まずは無料カウンセリングで話を聞いてみるのがおすすめです。

[ RareTECHの無料カウンセリングはこちら

初めてITに触れる方々のために、学習を助ける良書もご紹介しております。もしご興味があれば、ぜひそちらにも目を通してみてください!

SELECTした結果をUPDATEする

SELECTした結果をUPDATEする方法は2通りあります。どのような方法か見ていきましょう。

サブクエリを使った更新

サブクエリを使用することで、他のテーブルの値を参照して更新が可能です。以下は、従業員テーブルの給与を部署ごとの平均値に更新する例です。

UPDATE employees
SET salary = (SELECT AVG(salary)
              FROM department_salaries
              WHERE department_id = employees.department_id)
WHERE EXISTS (
  SELECT 1
  FROM department_salaries
  WHERE department_id = employees.department_id
);

ポイント

  • サブクエリで取得した値をSET 句で利用しています。
  • WHERE EXISTS を使うことで、対象となる行が存在する場合にのみ更新を実行します。

JOINを使った更新

複数のテーブルを結合して更新を行う場合、FROM 句を使用してJOINを活用できます。以下は、注文テーブルの合計価格を更新する例です。

UPDATE orders
SET total_price = new_data.total
FROM (
  SELECT order_id, SUM(price) AS total
  FROM order_details
  GROUP BY order_id
) AS new_data
WHERE orders.id = new_data.order_id;

まとめ

PostgreSQLを使えば、柔軟な条件付き更新が可能です。この記事で紹介した方法を活用すれば、SELECT結果を活用した効率的なデータ操作が実現できます。ぜひ、実際の業務でも活用してみてください!

PostgreSQLは、現場でも広く使われている信頼性の高いデータベースです。もしこれから本格的に学び、実務で通用する力をつけたい方には、RareTECHをチェックしてみてください。実案件ベースのカリキュラムで、あなたのスキルを次のステージへ引き上げてくれるはずです。

なんくる
なんくる

「本当にエンジニアとしてやっていけるか不安…」という方も、実践的な開発に関わることで、転職後の働き方を事前に体感できますよ。

実務で使えるDBスキルとともに、プログラミングスキルをちゃんと身につけたいなら、
RareTECH無料カウンセリングで、学ぶ目的やゴールをプロと一緒に明確にしてみましょう。独学では得られない「実践的な成長の道筋」が見えてきます。

▷ [ RareTECHの無料カウンセリングはこちら ]

もしこの内容を通して、PostgreSQLについてさらに理解を深めたいと感じられたなら、信頼できる講座や書籍を紹介した別記事をご覧いただくのも良いかと思います。ご自身の学びに、きっとお役立ていただけるはずです。

PostgreSQL
スポンサーリンク
なんくるをフォローする

コメント

タイトルとURLをコピーしました