ストアドプロシージャの概要ストアド プロシージャを使用する理由は何ですか?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ブロッキングマージとその他の効果についての簡単な説明
1. コマンドラインでMySQLサービスを停止します: net stop mysql stop my...
目次1. MySQLのバックアップタイプの詳細な説明1. バックアップがデータベースに与える影響に基...
この記事では、divのドラッグ可能な高さを実現するためのVueの具体的なコードを参考までに共有します...
目次0. システムに付属するカーネルツリー1. 環境設定最初のステップステップ2 2. ソースコード...
MySQL ドキュメントでは、MySQL 変数はシステム変数とユーザー変数の 2 つのカテゴリに分類...
この記事では、WeChatアプレットで星評価を実装するための具体的なコードを参考までに紹介します。具...
オブジェクトがメソッドを呼び出す順序:インスタンス内にメソッドが存在しない場合は、インスタンス オブ...
適切に機能するテーブル プロパティ設定:コードをコピーコードは次のとおりです。 <テーブル セ...
1. MySQLデータベースをダウンロードするには、公式Webサイトにアクセスしてください:http...
リンクに rel="nofollow" 属性を追加すると、検索エンジンにこの接続...
相対幅と絶対幅が競合する場合のdivソリューション概要: 一般的に、絶対幅を使用する場合は px を...
目次前に書いてビジネスコードは環境変数を使用するwebpack.DefinePlugin プラグイン...
コードをコピーコードは次のとおりです。 <!--[if !IE]><!-->...
この記事は主に、nginx 高可用性クラスタの実装プロセスを紹介します。この記事のサンプルコードは非...
あなたが作成するものこの新しいチュートリアルでは、CSS と JavaScript を使用して、レス...