【入門編】 PL/pgSQLの基本構造 – PostgreSQL

こんにちは!データベースの世界へようこそ。

PostgreSQLを触っていると、「SQLだけで十分じゃないの?」と思う瞬間があるかもしれません。でも、もう少し複雑な処理を自動化したり、一連の流れをデータベースの中で完結させたりしたいとき、頼りになる相棒が「PL/pgSQL」です。

今日は、このPL/pgSQLという「プログラミング言語」の基本構造を、日常の「お料理」に例えて解説してみますね。難しく考えすぎず、気楽に読んでみてください。

—

PL/pgSQLは「お料理のレシピ」そのもの

PL/pgSQLは、PostgreSQLの中で動くプログラムです。ただのSQLが「食材をください」という注文なら、PL/pgSQLは「その食材を使って、切って、焼いて、盛り付ける」という手順書(レシピ)を作るようなイメージです。

このレシピは、大きく分けて3つのパーツで構成されています。

1. DECLARE(準備するもの)

まずは「DECLARE(宣言)」ブロックです。料理で言えば、「材料の準備」ですね。

DECLARE
— ここに使う変数を書く
total_price integer := 0;
user_name text;

「今日使うお皿はこれ」「調味料はこれだけ使うよ」と、最初にテーブルの上を整えるイメージです。ここで名前を決めておかないと、後で「あれ、どこに置いたっけ?」となってしまいますからね。

2. BEGIN 〜 END(調理の手順)

ここがレシピのメイン、「調理」の部分です。`BEGIN`から始まり、`END`で終わります。

BEGIN
— ここに実際の処理を書く
total_price := 1000 + 500;
RAISE NOTICE ‘合計金額は % です’, total_price;
END;

この中では、計算をしたり、データを検索したり、条件によって動きを変えたり(もしAならBをする、など)という「動き」を記述します。一番ワクワクする場所ですね!

3. EXCEPTION(もしものときの対応)

最後は「EXCEPTION(例外処理)」ブロック。これは「焦がしてしまったとき」や「材料が足りなかったとき」の対応策です。

EXCEPTION
WHEN OTHERS THEN
RAISE NOTICE ‘あわわ、何かがうまくいきませんでした!’;

どんなに完璧なレシピでも、予期せぬトラブルは起きるものです。「もし失敗したら、とりあえず火を止めて報告する」といったルールを書いておくと、プログラムが急に止まってパニックになるのを防げます。

—

実際に書いてみるとこんな感じ!

これらを全部合わせると、こんな形になります。

DO $$
DECLARE
— 準備するもの
my_message text := ‘こんにちは!’;
BEGIN
— やること
RAISE NOTICE ‘%’, my_message;
EXCEPTION
— トラブル対応
WHEN OTHERS THEN
RAISE NOTICE ‘失敗しちゃいました…’;
END $$;

どうでしょう? 意外とシンプルだと思いませんか?

大切なのは「まずは書いてみること」

最初からすべてを完璧に使いこなす必要はありません。まずは「変数を1つ置いてみる」とか「計算結果を表示してみる」といった小さなステップから始めてみてください。

データベースの世界は、こうして自分の手で「動き」を制御できるようになると、本当に面白くなってきます。もし途中でエラーが出ても大丈夫。それは「ここを直せばもっと良くなるよ!」というPostgreSQLからの親切なアドバイスですから。

また分からないことがあれば、いつでも聞きに来てくださいね。あなたのデータベースライフが、もっと楽しくなりますように!

コメント

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