ホームページ >データベース >mysql チュートリアル >mysqlはストアドプロシージャを返します
MySQL は、オープンソースの強力なリレーショナル データベース管理システムです。ストアド プロシージャは、データベース内で特定の機能またはタスクを実行する、プリコンパイルされた SQL コード ブロックです。ストアド プロシージャを使用すると、重複コードが削減され、データベース操作の効率が向上し、セキュリティが確保されます。
この記事では、MySQL でのストアド プロシージャの使用と戻り値の処理に焦点を当てます。
1. MySQL ストアド プロシージャの作成と使用
MySQL ストアド プロシージャの作成には、次の手順が含まれます:
CREATE PROCEDURE procedure_name (IN parameter_name DATA_TYPE)
このうち、PROCEDURE はストアド プロシージャを作成するためのキーワード、procedure_name はストアド プロシージャの名前、IN パラメータ名は入力パラメータの名前、DATA_TYPE はデータです入力パラメータのタイプ。
BEGIN -- 存储过程语句 END
このうち、BEGIN と END はストアド プロシージャ ステートメントを指定するためのキーワードです。 BEGIN と END の間に複数の SQL ステートメントを記述して、ストアド プロシージャの特定の機能を実装できます。
CREATE PROCEDURE procedure_name (IN parameter_name DATA_TYPE) BEGIN SELECT * FROM table_name WHERE column_name = parameter_name; END
このうち、* はワイルドカード文字で、すべての列のデータを返すことを意味し、table_name はテーブル名、column_name は列名です。
2. MySQL ストアド プロシージャの呼び出し
MySQL ストアド プロシージャを作成した後、CALL ステートメントを使用してストアド プロシージャを呼び出すことができます。具体的な実装方法は次のとおりです:
CALL procedure_name(parameter_value);
このうち、CALL はストアド プロシージャを呼び出すためのキーワード、procedure_name はストアド プロシージャの名前、parameter_value はストアド プロシージャに渡されるパラメータ値です。
3. MySQL ストアド プロシージャの戻り値処理
MySQL ストアド プロシージャは、単一値と結果セットの 2 種類の値を返すことができます。単一の値の場合は OUT パラメーターを使用してその値を返すことができ、結果セットの場合は CURSOR を使用できます。
CREATE PROCEDURE procedure_name (IN parameter_name DATA_TYPE, OUT out_parameter_name DATA_TYPE)このうち、COUNT(*) は集計関数です。条件を満たすレコードの総数を返します。 ストアド プロシージャを呼び出す場合、以下に示すように、SELECT ステートメントを使用して OUT パラメータの値を取得できます。
CREATE PROCEDURE procedure_name (IN parameter_name DATA_TYPE, OUT out_parameter_name DATA_TYPE) BEGIN SET out_parameter_name = (SELECT COUNT(*) FROM table_name WHERE column_name = parameter_name); ENDこのうち、@out_parameter_value は、ストアに使用されるユーザー変数です。 OUTパラメータの値。
CURSOR を介して結果セットを返す
CURSOR は、結果セットを走査するために使用されるデータ型です。 MySQL ストアド プロシージャでは、DECLARE、OPEN、FETCH、CLOSE、END キーワードを使用して CURSOR と結果セットを定義できます。CALL procedure_name(parameter_value, @out_parameter_value); SELECT @out_parameter_value;
CREATE PROCEDURE procedure_name () BEGIN DECLARE cursor_name CURSOR FOR SELECT column_name FROM table_name; OPEN cursor_name; FETCH cursor_name INTO variable_name; WHILE @@FETCH_STATUS = 0 DO -- 处理结果集 FETCH cursor_name INTO variable_name; END WHILE; CLOSE cursor_name; END4. MySQL ストアド プロシージャの注意事項
使用プロセス内MySQL ストアド プロシージャの場合は、次の点に注意する必要があります。
ストアド プロシージャ内の変数名は、キーワードと同じ名前であってはなりません。
以上がmysqlはストアドプロシージャを返しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。