PL/SQL - 条件
こんにちは、未来のPL/SQLの魔法使いたち!今日は、PL/SQLにおける条件の魅力的な世界に飛び込みます。プログラミングが新しい thing であれば心配しないでください - 私はあなたをこの旅にステップバイステップで案内します。これまでに数多くの学生たちに教えてきたように。では、コーヒー(または、あなたの好み次第でテー)を片手に、始めましょう!
PL/SQLにおける条件とは?
あなたが分岐点に立って、どの道を進むかを決めるところを想像してください。それがプログラミングにおける条件の役割です - コードが決定を下すためのものです。PL/SQLでは、条件は特定の基準に基づいてプログラムの流れを制御するために使用されます。
条件の重要性
条件はプログラミングにおける論理の構成要素です。これにより、コードが賢くて適応可能になります。条件なしでは、プログラムは単一の軌道上的な列車のように - ただ一方向に進むだけです。条件があると、複雑な鉄道システムのように、コードがさまざまな状況に基づいて異なる経路を選ぶことができます。
PL/SQLにおける条件文の種類
PL/SQLで利用できるさまざまな条件文の種類を見てみましょう:
文 | 目的 |
---|---|
IF-THEN | 条件が真の場合にコードブロックを実行 |
IF-THEN-ELSE | 条件が真の場合に一つのブロックを実行、偽の場合に別のブロックを実行 |
IF-THEN-ELSIF | 複数の条件をチェックし、対応するブロックを実行 |
CASE | 値に基づいて複数のブロックから一つを選んで実行 |
これらのそれぞれを詳細に見ていきましょう。
IF-THEN 文
IF-THEN 文は最もシンプルな条件文です。これは「この条件が真なら、それを実行」と言うようなものです。
文法と例
IF 条件 THEN
ステートメント;
END IF;
これを実際に見てみましょう:
DECLARE
v_grade NUMBER := 75;
BEGIN
IF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('おめでとうございます!あなたは合格しました。');
END IF;
END;
この例では、成績が60以上の場合、合格のメッセージが表示されます。60未満の場合は何も起こりません。シンプルですね?
IF-THEN-ELSE 文
時々、条件が真の場合に一つのことをし、偽の場合に別のことをしたいことがあります。それがIF-THEN-ELSEに便利な理由です。
文法と例
IF 条件 THEN
ステートメント1;
ELSE
ステートメント2;
END IF;
前の例を修正してみましょう:
DECLARE
v_grade NUMBER := 55;
BEGIN
IF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('おめでとうございます!あなたは合格しました。');
ELSE
DBMS_OUTPUT.PUT_LINE('申し訳ありませんが、あなたは合格しませんでした。がんばってください!');
END IF;
END;
今度は、コードが合格と不合格の両方のシナリオを処理します。まるでプランBがあるようなものです!
IF-THEN-ELSIF 文
複数の条件をチェックしたい場合どうしますか?それがIF-THEN-ELSIFが救世主的な理由です。
文法と例
IF 条件1 THEN
ステートメント1;
ELSIF 条件2 THEN
ステートメント2;
ELSIF 条件3 THEN
ステートメント3;
ELSE
ステートメント4;
END IF;
より詳細な成績評価システムを作成してみましょう:
DECLARE
v_grade NUMBER := 85;
BEGIN
IF v_grade >= 90 THEN
DBMS_OUTPUT.PUT_LINE('素晴らしい!あなたはAをいただきました。');
ELSIF v_grade >= 80 THEN
DBMS_OUTPUT.PUT_LINE('素晴らしい仕事!あなたはBをいただきました。');
ELSIF v_grade >= 70 THEN
DBMS_OUTPUT.PUT_LINE('良い仕事!あなたはCをいただきました。');
ELSIF v_grade >= 60 THEN
DBMS_OUTPUT.PUT_LINE('あなたはDで合格しました。');
ELSE
DBMS_OUTPUT.PUT_LINE('申し訳ありませんが、あなたは合格しませんでした。がんばってください!');
END IF;
END;
このコードは教師が成績を評価するように、複数の条件をチェックし、各成績範囲に対して適切なフィードバックを提供します。
CASE 文
単一の変数や式を複数の可能な値と比較したい場合にCASE文が完璧です。
文法と例
CASE 表現式
WHEN 値1 THEN 結果1
WHEN 値2 THEN 結果2
...
ELSE 結果
END CASE;
CASEを使って曜日を決定する例を見てみましょう:
DECLARE
v_day NUMBER := TO_CHAR(SYSDATE, 'D');
v_message VARCHAR2(20);
BEGIN
v_message := CASE v_day
WHEN 1 THEN '日曜日'
WHEN 2 THEN '月曜日'
WHEN 3 THEN '火曜日'
WHEN 4 THEN '水曜日'
WHEN 5 THEN '木曜日'
WHEN 6 THEN '金曜日'
WHEN 7 THEN '土曜日'
ELSE '無効な日'
END;
DBMS_OUTPUT.PUT_LINE('今日は ' || v_message || ' です');
END;
このコードはカレンダーのように、数字を取り出してどの曜日かを教えます。
ネストされた条件
ロシアのメイド・ドールのように、条件の中に条件を入れることができます。これをネストと呼びます。
ネストされた条件の例
DECLARE
v_age NUMBER := 25;
v_income NUMBER := 50000;
BEGIN
IF v_age >= 18 THEN
IF v_income > 30000 THEN
DBMS_OUTPUT.PUT_LINE('あなたはクレジットカードの利用資格があります。');
ELSE
DBMS_OUTPUT.PUT_LINE('あなたは成人ですが、クレジットカードには収入が高すぎる必要があります。');
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE('18歳以上でなければクレジットカードの申込みはできません。');
END IF;
END;
このコードは銀行の窓口担当者がクレジットカードの申込みを承認する前に複数の基準を確認するのと同じです。
結論
おめでとうございます!PL/SQLにおける条件の世界をナビゲートしました。これらの条件文は、コードの流れを導く交通信号のように、スムーズにすべてが進むことを確認します。
練習は鍵です。自分自身でシナリオを作成し、さまざまな条件文を使って問題を解決してみてください。それを繰り返すことで、あなたもPL/SQLの達人になり、いつか新しい一代の熱心な学習者にPL/SQLを教えることになるかもしれません。
codingを続け、学び続け、そして最も重要なのは、それを楽しむことです!
Credits: Image by storyset