こんにちは!データベースの世界へようこそ。
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からの親切なアドバイスですから。
また分からないことがあれば、いつでも聞きに来てくださいね。あなたのデータベースライフが、もっと楽しくなりますように!
コメント