ストアドプロシージャの概要ストアド プロシージャを使用する理由は何ですか?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ブロッキングマージとその他の効果についての簡単な説明
最近は学ぶべき知識が多すぎて、どれを先に学べばいいのかわかりません。このブログはもともとxamari...
目次ファイル()文法パラメータ例ブロブ()文法パラメータ財産方法例要約するファイル() File()...
Ubuntu のバージョンに関係なく、MySQL データベースのインストールは基本的に同じです。具...
目次序文1. Axiosの紹介2. HTTPインターセプターの設計と実装2.1 インターセプターの紹...
最初のもの: 1. 主要なヘッダーファイルを追加します。 #include <linux/of...
目次トリガーについてトリガーの使用トリガーを作成するトリガーを表示トリガーの削除使用上の注意新旧の違...
目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...
1. 物件リストコードをコピーコードは次のとおりです。色: #999999 テキスト色フォントファミ...
目次1. はじめに2. プロトタイプチェーン継承3. コンストラクタの継承4. 組み合わせ継承1. ...
目次axiosとは何ですか? Axios リクエストタイプ? Axiosはデフォルトのカスタム構成を...
この記事では、ショッピングカートを実装するためのVue.jsフレームワークの具体的なコードを参考まで...
will-change は、要素にどのような変更が行われるかをブラウザに伝え、ブラウザが事前に最適化...
序文InnoDB はデータをテーブルスペースに保存します。デフォルト設定では、初期サイズが 10 M...
url-loader をダウンロード 糸を追加 -D URLローダー モジュール: { ルール: {...
DNS(ドメインネームサーバー)は、ドメイン名とそれに対応する IP アドレスを変換するサーバーです...