MySQL ストアド プロシージャは、データベース サーバーに保存して実行できる事前定義されたプログラムです。 MySQL ストアド プロシージャは、ステートレス データベース操作を実行するために使用される、保存可能で再利用可能なプログラムです。 MySQL では、ストアド プロシージャは、パラメータを受け取り値を返す一連の SQL ステートメントで構成されます。
MySQL では、ストアド プロシージャはユーザー定義関数またはストアド プロシージャに分類できます。ユーザー定義関数は、1 つ以上のパラメーターを受け入れ、値を返すスタンドアロンの呼び出し可能なプログラムです。ストアド プロシージャは 1 つ以上の関連操作を実行でき、0 個以上のパラメーターを受け入れることができます。
MySQL ストアド プロシージャの構文は、プロシージャ宣言、変数割り当て、条件ステートメント、ループ ステートメント、例外処理など、他のプログラミング言語の構文と似ています。ストアド プロシージャは、出力パラメータ、カーソル、ネストされたプロシージャなどの高度な機能もサポートします。
次は、MySQL ストアド プロシージャの基本構文です:
DELIMITER // CREATE PROCEDURE procedure_name(param1 datatype, param2 datatype, ..., paramN datatype) BEGIN -- 这里是 SQL 语句 END // DELIMITER ;
この例では、DELIMITER コマンドは、MySQL インタープリタの区切り文字を二重スラッシュ (//) に設定して、ストレージを許可します。プロシージャではセミコロンを使用します。 CREATE PROCEDURE コマンドは、ストアド プロシージャの名前とパラメータを宣言します。ストアド プロシージャの本体は、BEGIN と END の間の SQL ステートメントで構成されます。最後に、DELIMITER コマンドは区切り文字をセミコロンに返します。
ストアド プロシージャを実行するには、CALL コマンドを使用します。
CALL procedure_name(param1, param2, ..., paramN);
この例では、CALL コマンドはストアド プロシージャを実行し、パラメータをそれに渡します。ストアド プロシージャが結果セットまたは出力パラメータを返す場合、SELECT または SET コマンドを使用してそれらを取得できます。
この基本的な知識を念頭に置いて、MySQL ストアド プロシージャについて見ていきます。以下に、MySQL ストアド プロシージャに関連して一般的に使用されるコマンドをいくつか示します。
SHOW CREATE PROCEDURE コマンドは、指定されたストアド プロシージャのソース コードを表示するために使用されます。たとえば、myproc という名前のストアド プロシージャのソース コードを表示したい場合は、次のコマンドを実行できます。
SHOW CREATE PROCEDURE myproc;
これにより、名前、パラメータ、本体を含むストアド プロシージャのソース コードが返されます。 、および区切り文字。ストアド プロシージャが特別なオプション (SQL SECURITY など) を使用している場合、それらも表示されます。
SHOW PROCEDURE STATUS コマンドは、現在のデータベースに定義されているすべてのストアド プロシージャのステータスを表示するために使用されます。このコマンドは、各ストアド プロシージャの名前、作成時間、変更時間、実行時間などの情報を含む結果セットを返します。たとえば、現在のデータベース内のすべてのストアド プロシージャのステータスを表示するには、次のコマンドを実行できます。
SHOW PROCEDURE STATUS;
DROP PROCEDURE コマンドは次のとおりです。既存のストアド プロシージャを削除するために使用されます。ストアド プロシージャを確実に削除する場合は、次のコマンドを使用できます。
DROP PROCEDURE myproc;
これにより、myproc という名前のストアド プロシージャが削除されます。
ALTER PROCEDURE コマンドは、既存のストアド プロシージャを変更するために使用されます。このコマンドの構文は CREATE PROCEDURE コマンドと非常に似ており、ストアド プロシージャ名の後に変更する部分を指定するだけで済みます。たとえば、myproc という名前のストアド プロシージャの主要部分を変更するには、次のコマンドを実行できます。
ALTER PROCEDURE myproc BEGIN -- 修改后的 SQL 语句 END;
USAGE コマンドは、現在の MySQL サーバー上のストレージ情報 プロセスの使用状況。このコマンドは、名前、データ型、パラメーター モード、各ストアド プロシージャで NULL 値が許可されるかどうかなどの情報を含む結果セットを返します。たとえば、現在の MySQL サーバー上のすべてのストアド プロシージャの使用状況を表示するには、次のコマンドを実行できます。
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE';
サマリー
MySQL ストアド プロシージャは、私たちに役立つ強力なデータベース プログラムです。データベースのパフォーマンスとセキュリティが向上します。複雑なトランザクションを実行する必要がある場合、または多数の SQL ステートメントを使用する必要がある場合は、ストアド プロシージャを使用してコードを簡素化し、データベースのスループットを向上させることができます。上記のコマンドは、初心者が MySQL ストアド プロシージャを学習する際に習得しなければならないコマンドであり、これらのコマンドを通じてストアド プロシージャをより適切に管理および使用できるようになります。
以上がmysqlストアドプロシージャビューの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。