ストアドプロシージャの概要ストアド プロシージャを使用する理由は何ですか?MySQL バージョン 5.0 ではストアド プロシージャのサポートが開始されました。 ほとんどの SQL ステートメントは、1 つ以上のテーブルに対する単一のステートメントです。すべての操作がそれほど単純というわけではありません。多くの場合、完全な操作を完了するには複数のステートメントが必要です。 簡単に言えば、ストアド プロシージャとは、後で使用するために保存された 1 つ以上の MySQL ステートメントの集合です。バッチファイルとして考えてください。ただし、その役割はバッチ処理に限定されません。
ストアドプロシージャの利点
ストアドプロシージャの欠点
MySQL のストアド プロシージャプロシージャの作成と呼び出しストアド プロシージャを作成します。コードは次のようになります。 -- ストアド プロシージャを作成します。create procedure mypro(in a int, in b int, out sum int) 始める 合計を a+b に設定します。 終わり; 結果は以下のとおりです 以下に示すように、Navicat クライアントの「関数」ノードでプロセスを表示することもできます。 ストアド プロシージャを呼び出す場合、コードは次のようになります。 call mypro(1,2,@s);-- ストアド プロシージャを呼び出す select @s;-- プロシージャの出力結果を表示する 運用結果 ストアドプロシージャ構文解析
ストアドプロシージャのパラメータ
ストアド プロシージャは、パラメーターに基づいて 4 つのカテゴリに分類できます。 1). パラメータのない手順。 2) プロセスには入力パラメータのみがあります。 3) 出力パラメータのみを持つプロセス。 4) 入力パラメータと出力パラメータを含むプロシージャ。 変数MySQL のストアド プロシージャは、Java のメソッドに似ています。 この場合、変数はストアド プロシージャでも使用できます。 Java のローカル変数のスコープは変数が配置されているメソッドですが、MySQL のローカル変数のスコープは変数が配置されているストアド プロシージャです。 変数の定義 DECLARE 変数名 [,変数名...] データ型 [デフォルト値];
例えば: 名前varchar(20)を宣言します。デフォルトは'jack'です。 変数の割り当てSET 変数名 = 式の値 [,variable_name = 式 ...] ストアドプロシージャで変数を使用する場合、コードは次のようになります。 use schooldb;-- schooldb データベースを使用する -- プロシージャを作成する create procedure mypro1() 始める 名前を宣言するvarchar(20); 名前を 'Qiu Chuji' に設定します。 studentname = name の場合、studentinfo から * を選択します。 終わり; -- プロシージャを呼び出します call mypro1(); 運用結果 フロー制御文if条件文
ストアド プロシージャを定義し、整数を入力し、if ステートメントを使用してそれが正の数か負の数かを判断します。コードは次のとおりです。 -- プロシージャを作成する create procedure mypro2(in num int) 始める if num<0 then -- 条件は「負の数」の選択を開始します。 そうでない場合はnum=0 「肯定的でも否定的でもない」を選択します。 それ以外 「正の数」を選択します。 end if;-- 条件が終了します end; -- プロシージャ call mypro2(-1); を呼び出します。 運用結果 case 条件文
ストアド プロシージャを定義し、整数を入力し、case ステートメントを使用してそれが正の数か負の数かを判断します。コードは次のとおりです。 -- プロシージャを作成する create procedure mypro3(in num int) 始める case -- 条件は num<0 のときに開始し、その後 '負の数' を選択します。 num=0 の場合は、「正でも負でもない」を選択します。 それ以外の場合は「正の数」を選択します。 end case; -- 条件が終了します end; -- プロシージャ call mypro3(1); を呼び出す。 運用結果 ストアド プロシージャを定義し、整数を入力し、case ステートメントを使用してそれが 1 か 2 かを判断します。コードは次のとおりです。 -- プロシージャを作成する create procedure mypro4(in num int) 始める case num -- 条件は 1 のときに開始し、その後「値が 1 である」を選択します。 2 の場合は「値は 2 です」を選択します。 それ以外の場合は「1でも2でもない」を選択します。 end case; -- 条件が終了します end; -- プロシージャ call mypro4(3); を呼び出す。 運用結果
whileループ文
ストアド プロシージャを定義し、while ループを使用して 1 から 10 までの累積合計を出力します。コードは次のとおりです。 -- プロシージャを作成します。create procedure mypro5(out sum int) 始める num int のデフォルトを 0 と宣言します。 合計を 0 に設定します。 while num<10 do -- ループ開始 set num = num+1; sum を sum+num に設定します。 end while; -- ループの終了 end; -- プロシージャを呼び出す call mypro5(@sum); --変数値を照会する select @sum; 運用結果 繰り返しループ文
ストアド プロシージャを定義し、繰り返しループを使用して 1 から 10 までの累積合計を出力します。コードは次のとおりです。 -- プロシージャを作成します。create procedure mypro6(out sum int) 始める num int のデフォルトを 0 と宣言します。 合計を 0 に設定します。 repeat-- ループ開始 set num = num+1; sum を sum+num に設定します。 数値>=10になるまで end repeat; -- ループの終了 end; -- プロシージャを呼び出します call mypro6(@sum); --変数値を照会する select @sum; 運用結果 ループ文ループ ステートメントは、特定のステートメントを繰り返し実行するために使用されます。 実行プロセス中に、 ストアド プロシージャを定義し、ループを使用して 1 から 10 までの累積合計を出力します。コードは次のとおりです。 -- プロシージャを作成します。create procedure mypro7(out sum int) 始める num int のデフォルトを 0 と宣言します。 合計を 0 に設定します。 loop_sum:loop-- ループ開始 set num = num+1; sum を sum+num に設定します。 num>=10の場合 loop_sum を終了します。 終了の場合; end loop loop_sum; -- ループの終了 end; -- プロシージャを呼び出します call mypro7(@sum); --変数値を照会する select @sum; 運用結果
ストアドプロシージャ管理ストアド プロシージャの管理には、主に、プロシージャの表示、プロシージャのソース コードの表示、およびプロシージャの削除が含まれます。 比較的簡単な方法は、次の図に示すように、マウスをクリックするだけの、Navicat クライアント ツールを使用して管理することです。 ストアドプロシージャの表示 プロシージャのステータスを表示します。 特定のデータベースのストアド プロシージャを表示します。 SHOW PROCEDURE ステータス where db = 'schooldb'; 特定のスキーマのストアド プロシージャを表示し、名前に「my」が含まれるストアド プロシージャが表示されるように要求します。 SHOW PROCEDURE ステータス、名前が '%my%' のような場合; ストアドプロシージャ「mypro1」のソースコードを表示します。 CREATE PROCEDURE mypro1 を表示します。 ストアドプロシージャ「mypro1」を削除します。 PROCEDURE mypro1 を削除します。 要約するこれで、MySQL ストアド プロシージャの作成、呼び出し、および管理に関するこの記事は終了です。MySQL ストアド プロシージャの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSSブロッキングマージとその他の効果についての簡単な説明
フロントエンド開発者がよく遭遇する問題は、ユーザーに情報を提示するためのポップアップ ウィンドウを作...
コードは次のようになります。 <!DOCTYPE html> <html> ...
基本概念操作の前に、まずいくつかの基本的な概念を理解する必要がありますディスクLinux システムで...
目次コンポーネント通信の概要コンテンツ3つの方法まとめコンポーネントコミュニケーション - 父から息...
目次序文どのような状況でメモリリークが発生する可能性がありますか? 1. 偶発的なグローバル変数2....
この記事では、実際に発生した問題をもとに、git の設定に関する内容を紹介します。コマンド: git...
誰もがスクラッチ チケットで遊んだことがあると思います。子供の頃、ポケットにお金が入るとすぐに友達に...
目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...
Iframe Web ページのナビゲーション ウィンドウに関する簡単な説明 Iframe ウェブペー...
環境Linux 3.10.0-693.el7.x86_64 Docker バージョン 18.09.0...
1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...
目次トリガーについてトリガーの使用トリガーを作成するトリガーを表示トリガーの削除使用上の注意新旧の違...
目次序文1. vue-cliを使う1. Toastコンポーネントを定義する2. main.jsで設定...
例: <html> <ヘッド> <スタイル タイプ="tex...
第1章 ソースコードのインストールRPM パッケージは特定のシステムとプラットフォームに応じて指定さ...