MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を説明します。ご参考までに、詳細は以下の通りです。

MySQL の IF ステートメントを使用すると、特定の条件または式の値の結果に基づいて一連の SQL ステートメントを実行できるため、MySQL でテキスト、変数、演算子、さらには関数と組み合わせることができる式を作成する必要があります。式は、TRUE、FALSE、NULL の 3 つの値のいずれかを返すことができます。文法構造を見てみましょう:

IF式THEN
  声明;
終了の場合;

上記の式が TRUE と評価された場合、ステートメントが実行され、それ以外の場合は制御フローは END IF の後の次のステートメントに渡されます。 IF ステートメントの実行プロセスを見てみましょう。

IF ELSE ステートメントの構文を見てみましょう。

IF式THEN
  声明;
それ以外
  else ステートメント;
終了の場合;

ここで、IF ELSE ステートメントの実行プロセスを見てみましょう。

複数の式に基づいて条件付きでステートメントを実行する場合は、IF ELSE IF ELSE ステートメントを使用します。その構文構造は次のとおりです。

IF式THEN
  声明;
ELSEIF elseif式 THEN
  elseif ステートメント;
...
それ以外
  else ステートメント;
終了の場合;

式が TRUE と評価された場合、IF ブランチ内のステートメントが実行されます。式が FALSE と評価され、elseif_expression が TRUE と評価された場合、mysql は elseif-expression を実行し、それ以外の場合は ELSE ブランチ内の else-statements を実行します。具体的な実装プロセスを見てみましょう。

次に、IF ESLEIF ELSE ステートメントと GetCustomerLevel() ストアド プロシージャを使用して、顧客番号と顧客レベルの 2 つのパラメーターを受け入れます。まず、GetCustomerLevel() ストアド プロシージャは、顧客テーブルからクレジット限度額を取得する必要があります。次に、クレジット限度額に基づいて、顧客レベル (PLATINUM、GOLD、SILVER) を決定します。パラメータ p_customerlevel は顧客レベルを格納し、呼び出しプログラムによって使用されます。具体的な SQL を見てみましょう。

区切り文字 $$
CREATE PROCEDURE GetCustomerLevel(
  p_customerNumber int(11)では、
  出力 p_customerLevel varchar(10))
始める
  creditlim double を宣言します。
  クレジット制限をクレジット制限に選択する
  お客様から
  ここで、顧客番号 = p_顧客番号;
  クレジット限度額 > 50000 の場合
 p_customerLevel を 'PLATINUM' に設定します。
  ELSEIF (creditlim <= 50000 AND creditlim >= 10000) の場合
    p_customerLevel を 'GOLD' に設定します。
  ELSEIF クレジット制限 < 10000 THEN
    p_customerLevel を 'SILVER' に設定します。
  終了の場合;
終わり$$

顧客レベルを決定するロジックのフローチャートは次のとおりです。

さて、今回の共有はこれですべてです。

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL ストアド プロシージャ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、および「MySQL データベース ロック関連スキルの概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQL ストアド プロシージャの作成、呼び出し、管理の詳細な説明
  • MySQL ストアド プロシージャのクエリ コマンドの概要
  • MySQL ストアド プロシージャの in、out、inout パラメータの例と概要
  • MySQLストアドプロシージャを変更する詳細な手順
  • カーソル ループを使用して、MySQL ストアド プロシージャで一時テーブルを読み取る
  • MySQL ストアド プロシージャ関連の権限変更の問題
  • MySQL ストアド プロシージャ (in、out、inout) の詳細な説明
  • MySQL ストアド プロシージャで月ごとにテーブルを作成する方法
  • MySql ビュー、トリガー、ストアド プロシージャに関する簡単な説明
  • MySQL ストアドプロシージャの長所と短所の分析

<<:  jQueryは画像追従効果を実現します

>>:  Alibaba Cloud Centos7.X で外部にポートを開く方法

推薦する

MySQL 8.0.21 無料インストール版 設定方法 グラフィックチュートリアル

MySQLをインストールする6つの手順(インストールパッケージのみがインストール場所を選択できます)...

ブラウザタブの左端に表示されるウェブサイトのアイコンを設定します

この文の目的は何ですか?コードをコピーコードは次のとおりです。 <link rel="...

Reactフックとzarmコンポーネントライブラリ構成に基づいてh5フォームページを開発するためのサンプルコード

最近、React Hooks を zarm コンポーネント ライブラリと組み合わせて使用​​し、js...

Linux がますます人気になっている 10 の理由

Linux はますます多くのユーザーに愛されてきました。なぜ Linux はこれほど急速に発展し、い...

CSS3で実装されたサムネイルホバー効果

成果を達成する実装コードhtml <ヘッダー> <h1><em>...

バックエンドデータを取得するためのVue Elementフロントエンドアプリケーション開発

目次概要1. バックエンドデータの取得と処理2. インターフェース表示処理概要前回のエッセイ「ステッ...

Vueはカウントダウン機能を実装する

この記事の例では、カウントダウン機能を実装するためのVueの具体的なコードを参考までに共有しています...

CSS継承方法

次の背景画像を持つ div があるとします。 次の反射効果を作成します。 方法はたくさんありますが、...

CentOS 8.4 に Docker をインストールする詳細なチュートリアル

目次序文:システム要件:インストール環境:古いバージョンをアンインストールします: yum は具体的...

MySQL が外部キーを作成できない理由と解決策

2 つのテーブルを関連付けるときに、外部キーを作成できませんでした。このブログから、問題は、ポイント...

Linux で毎日データベースの自動バックアップを設定する方法

この記事では、Centos7.6 システムと Oracle11g を例に挙げます。 1. まずデータ...

Win10でのMySQL5.7.17無料インストール版の基本設定チュートリアルについて(画像とテキスト付き)

データベース アプリケーションは、アプリケーション システムに不可欠な部分です。リレーショナル デー...

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

Jenkins の紹介と Docker で Jenkins をデプロイする方法

1. 関連概念1.1 Jenkins の概念: Jenkins は、使用されるプラットフォームに関係...

M1 チップに MySQL 8.0 データベースをインストールする方法 (画像とテキスト)

1. ダウンロードまず、MySQLの国内ミラーをお勧めします。特に速いわけではありませんが、それで...