MySQL は一般的に使用されるリレーショナル データベースであり、ストアド プロシージャは非常に重要な機能です。ストアド プロシージャは SQL 言語の高度なアプリケーションであり、複数の SQL ステートメントを組み合わせて 1 つの単位として処理し、データベース上で複雑な操作を実現します。
ストアド プロシージャの概要
ストアド プロシージャは、テーブル、ビュー、インデックスなどと同じデータベース オブジェクトの 1 つです。事前定義された SQL ステートメントのセットです。 MySQL では、ストアド プロシージャは、クライアントまたはデータベース サーバー上で実行できる再利用可能なプログラム コードです。
ストアド プロシージャの特性:
1. カプセル化
ストアド プロシージャは、一連の SQL ステートメントを 1 つの関数に結合して、データベースのカプセル化とセキュリティを向上させることができます。不適切な操作を避けてください。
2. 高い実行効率
ストアドプロシージャは作成時にバイナリコードにコンパイルされ、実行時にはバイナリコードが直接呼び出されるため、実行効率が非常に高くなります。
3. 再利用性
ストアド プロシージャは複数回呼び出すことができるため、再利用性が向上します。
4. 強力な機能
ストアド プロシージャは SQL 言語を高度に応用したもので、データベースの複雑な操作を実現できる非常に強力な機能です。
ストアド プロシージャの構文
ストアド プロシージャの定義
ストアド プロシージャの定義構文は次のとおりです。
CREATE PROCEDURE プロシージャ名([パラメータ リスト] )
BEGIN
存储过程主体内容
END;
このうち、[パラメーター リスト] はオプションであり、ストアド プロシージャに必要な入力パラメーターと出力パラメーターを表します。ストアド プロシージャの主な内容は一連の SQL ステートメントであり、これには制御フロー ステートメント (IF、WHILE、LOOP など) を含めることができ、他のストアド プロシージャを呼び出すこともできます。
ストアド プロシージャ パラメータ
ストアド プロシージャには、入力パラメータ、出力パラメータ、入出力パラメータを持つことができます。入力パラメータは外部から渡される値であり、ストアドプロシージャ内で使用されます。出力パラメータはストアド プロシージャ内で計算または割り当てられ、ストアド プロシージャの実行後に呼び出し元に返されます。入出力パラメータは双方向通信に使用されます。
ストアド プロシージャ パラメータの構文は次のとおりです。
CREATE PROCEDURE プロシージャ名(IN|OUT|INOUT パラメータ名 パラメータタイプ[,IN|OUT|INOUT パラメータ名 パラメータタイプ...])
BEGIN
存储过程主体内容
END;
このうち、parameter_nameはパラメータ名、parameter_typeはパラメータの種類、INは入力パラメータ、OUTは出力パラメータ、INOUTは入出力パラメータを表します。 。
ストアド プロシージャ呼び出し
ストアド プロシージャ呼び出しの構文は次のとおりです。
CALL プロシージャ名([パラメータ リスト])
このうち、プロシージャ名はストアド プロシージャの名前とパラメーター リストは、ストアド プロシージャに必要な入力パラメーターです。
ストアド プロシージャの例
次は、単純なストアド プロシージャの作成例です。この例では、getUserInfo という名前のストアド プロシージャが作成されます。このプロシージャでは、ユーザー名の入力が必要で、ユーザーのニックネームが返されます。
DELIMITER $$CREATE PROCEDURE getUserInfo(IN 名 VARCHAR(20), OUT ニックネーム VARCHAR(20))
BEGIN
SELECT user_nickname INTO nickname FROM user WHERE user_name=name;END $$
DELIMITER ;
SELECT @nickname;
以上がmysqlのストアドプロシージャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。