ストアドプロシージャの概要ストアド プロシージャを使用する理由は何ですか?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. 需要方法1方法2方法3 2. 実装3. 問題解決質問1: トークンの複数回の更新を防ぐ方法...
CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...
前回の記事では、Zabbix のネットワーク検出機能について学習し、アクションと組み合わせてホストの...
Dockerのインストール公式インストールスクリプトを使用して最新バージョンのDockerをインスト...
多くのプロジェクトでは、検証コードの送信など、カウントダウン機能を実装する必要があります。ここで、簡...
HTML: タイトル見出しは <h1> - <h6> などのタグによって定...
目次1. Baidu Map Open Platformにアカウントを登録してログインする2. 必要...
目次前の1. セットアップ構文シュガーとは何か2. セットアップコンポーネントを使用して自動的に登録...
mysql データベースには student テーブルがあり、その構造は次のとおりです。 Oracl...
1. 公式サイトを参照してdockerをインストールする2. MySQLイメージをプルします(デフォ...
データのバックアップ操作は非常に簡単です。次のコマンドを実行します。 docker run --vo...
実際、この効果を実現するのは非常に簡単で、この効果は特殊効果と呼ぶことすらできません。次のコードを ...
今日は奇妙なネットワーク問題に遭遇しました。調査プロセスといくつかの構成状況を記録し、Linux で...
背景多くのウェブサイトのデザインは、一般的にコンテンツ+フッターの2つの部分で構成されています。コン...
1. CentOSイメージをダウンロードする1.1 ダウンロードウェブサイトhttp://mirro...