この記事では、例を使用して、MySQL ストアド プロシージャの概念、原則、および一般的な使用法について説明します。ご参考までに、詳細は以下の通りです。 1. ストアドプロシージャの概念
プロシージャ: 複数のステートメントをカプセル化します。呼び出されると、これらのカプセル化された本体は関数を実行します。戻り値を持つ「プロシージャ」 MySQLの場合: 複数のSQL文をカプセル化して、プロシージャという名前を付けます。このプロシージャをデータベースに保存します(ストアドプロシージャ)。 2. ストアドプロシージャを作成する プロシージャ procedureName() を作成します 始める //--SQL ステートメント終了$ 3. 既存のストアドプロシージャを表示する 手順のステータスを表示 4. ストアドプロシージャを削除する プロシージャ procedureName を削除します。 5. ストアドプロシージャの呼び出し procedureName() を呼び出します。 6. 最初のストアドプロシージャ 注: ここでは、MySQL 終了識別子を $ に変更しました。$ に設定する方法を知りたい場合は、別の記事「MySQL トリガー」を参照してください。 プロシージャ p1() を作成する 始める 2+3を選択します。 終了$ 電話: p1() を呼び出す。 結果を表示: 7. 変数の導入 ストアド プロシージャはプログラム可能なので、変数、式、制御構造を使用して複雑な関数を完成させることができます。ストアド プロシージャでは、declare を使用して変数を宣言します。 変数名 変数型 [デフォルト デフォルト値] を宣言する 使用: プロシージャ p2() を作成する 始める 年齢を int のデフォルト 18 と宣言します。 高さを int のデフォルト 180 として宣言します。 concat('年齢:',age,'身長:',height) を選択します。 終了$ 結果を表示: 8. 表現の紹介 ストアド プロシージャでは、+-*/ などの SQL ステートメント内の有効な操作に変数を使用できます。変数の割り当て形式は次のとおりです。 使用: プロシージャ p3() を作成する 始める 年齢を int のデフォルト 18 と宣言します。 年齢を := 年齢 + 20 に設定します。 select concat('20年後の年齢:',age); 終了$ 結果を表示: 9. 選択制御構造を導入する 形式: 条件が 声明 そうでない場合 声明 それ以外 声明 終了の場合; 使用: プロシージャ p4() を作成する 始める 年齢を int のデフォルト 18 と宣言します。 年齢が18歳以上の場合 「古い」を選択します。 それ以外 「未成年者」を選択します。 終了の場合; 終了$ 結果を表示: 10. ストアドプロシージャへのパラメータの受け渡し ストアド プロシージャ定義の括弧内で、パラメータを宣言できます。構文は次のとおりです。 使用: プロシージャ p5(幅 int、高さ int) を作成します。 始める select concat('あなたのエリアは:',width * height) as area; 幅 > 高さの場合 「あなたは太っています」を選択します。 そうでない場合は幅<高さ 「あなたは痩せています」を選択します。 それ以外 「比較する」を選択します。 終了の場合; 終了$ 結果を表示: 11. whileループ構造を使用する 要件: 1から100まで追加 使用: プロシージャ p6() を作成する 始める 合計 int のデフォルトを 0 と宣言します。 num int のデフォルトを 0 と宣言します。 num <= 100 の間 合計を := 合計 + 数値 と設定します。 num を num + 1 に設定します。 終了しながら; 合計を選択; 終了$ 結果を表示: 12. ストアドプロシージャパラメータの入力と出力の種類 要件には、in、out、inoutの3つの主な種類があります。1からNまで (1)in型、inは入力行パラメータであり、入力を受け入れることができる。 プロシージャ p7(in n int) を作成します。 始める 合計 int のデフォルトを 0 と宣言します。 num int のデフォルトを 0 と宣言します。 num <= n の間 合計を := 合計 + 数値 と設定します。 num を num + 1 に設定します。 終了しながら; 合計を選択; 終了$ 電話: p7(100)を呼び出します。 出力: (2)out型のパラメータ プロシージャ p8(in n int,out total int) を作成します。 始める num int のデフォルトを 0 と宣言します。 合計を 0 に設定します。 num <= n の間 合計を := 合計 + 数値 と設定します。 num を num + 1 に設定します。 終了しながら; 終了$ 電話: call p8(100,@total); --100は入力パラメータ、@totalは出力変数です select @total; --output @total variable 出力: (3)入出力型パラメータ プロシージャ p9(inout age int) を作成します。 始める 年齢を := 年齢 +20 に設定します。 終了$ 電話: set @age = 18; --@age変数を18に設定します call p9(@age); --p9 ストアド プロシージャを呼び出します。@age 変数は実際のパラメーターです。select @age; --@age 変数を表示します。 出力: inout 型変数の実際のパラメータも変数名です。この変数は、ストアド プロシージャの入力変数と出力変数の両方として機能します。 13. 格構造の使用 使用: プロシージャ p10() を作成する 始める pos int のデフォルトを 0 と宣言します。 pos := floor(5*rand()); を設定します。 ケース pos 1の場合は「まだ飛行中」を選択します。 2の場合は「海に落ちる」を選択します。 3の場合は「陸に落ちる」を選択します。 それ以外の場合は「場所が分からない」を選択します。 終了ケース; 終了$ 出力: 14. 繰り返しループ構造 形式: [begin_label:] 繰り返し ステートメントリスト UNTIL 検索条件 繰り返し終了 [end_label] 要件: 1から100まで追加 プロシージャ p11() を作成する 始める 合計 int のデフォルトを 0 と宣言します。 num int のデフォルトを 0 と宣言します。 r:繰り返し 合計を合計 + 数値と設定します。 num:=num + 1 を設定します。 数値が100を超えるまで 繰り返し終了 r; 合計を選択; 終了$ 出力: MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL ストアド プロシージャ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
目次1. はじめに2回目の練習2.1 インストールと設定2.2 コアクラスの紹介2.3 使い方は? ...
インターネットは人々の生活にますます欠かせないものになってきていると思います。 Ajax や fle...
2048ミニゲーム、参考までに具体的な内容は以下のとおりですまず、2048ゲームは16のグリッドか...
1. どのような問題に直面しましたか?標準 SQL では、通常、次の SQL 挿入ステートメントを記...
複数のTomcatをインストールする場合は、システムにJDKがインストールされている必要があり、 T...
目次チュートリアルシリーズ1. SQL言語の紹介と仕様2. データベース操作1. ライブラリを作成す...
前提条件gitをインストールする必要があるインストール手順1. リモートリポジトリからpyenvをク...
序文:前回の記事では、さまざまな MySQL ステートメント構文の使用法とユーザー権限に関する知識を...
実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...
序文最良の方法は、あなたが思いつく最も速い方法ではないかもしれません。職場で一時的に使用するスクリプ...
必要: vue を使用して QR コードのスキャンを実現します。プラグイン: QRコードリーダー;プ...
コンピュータ システムが再インストールされ、侵入テスト学習環境 DVWA を再インストールする必要が...
仕事上、携帯電話に適応した Web ページ効果を作成する必要があります。ようやく完成しました。まずは...
目次前面に書かれた環境の展開Zookeeper クラスタの展開Clickhouse クラスターの展開...
Navicat が MySql サーバーにリモート接続できない問題の解決策は、先頭に書かれています:...