mysqlプロシージャ関数

PHPz
PHPzオリジナル
2023-05-08 13:01:38916ブラウズ

MySQL のプロシージャと関数を使用して、一連の SQL ステートメントをカプセル化し、複雑なビジネス ロジックを実装できます。この記事では、MySQL のプロシージャと関数を紹介し、構文、実行フロー、サンプル プログラムの観点から説明します。

1. MySQL のプロシージャ

プロシージャは、C 言語の関数と同様に、一連の SQL ステートメントをカプセル化する MySQL のメカニズムです。 MySQL プロシージャは、入力パラメータを受け取り、出力パラメータを返し、結果セットを返すことができるため、複雑なビジネス ロジックをカプセル化するのに非常に適しています。

1. 構文

プロセスを作成するための構文は次のとおりです:

CREATE PROCEDURE procedure_name ([IN | OUT | INOUT] parameter_name parameter_type)
BEGIN
   statements;
END;

このうち、procedure_name はプロセスの名前、parameter_name はパラメーターの名前です。プロセスによって渡されるか、プロセスによって返されます。parameter_type はパラメータです。タイプには、標準の MySQL データ型を使用できます。

2. 実行プロセス

実行プロセス フローは次のとおりです:

  • クライアントはプロセスを呼び出すリクエストを開始します;
  • MySQLサーバーはリクエストを取得し、プロセスの名前とパラメータを解析し、
  • #MySQL 実行プロセスのコード ブロックを解析して、結果をクライアントに返します。
3. サンプル プログラム

以下は、入力パラメータと出力パラメータを含むサンプル プログラムです:

CREATE PROCEDURE sum(IN a INT, IN b INT, OUT c INT)
BEGIN
   SET c = a + b;
END;
上記のプログラムを実行して正常に作成された後、次のメソッドを使用してこのプロセスを呼び出すことができます:

CALL sum(1, 2, @result);
SELECT @result;
上記のコードの意味は次のとおりです: sum プロセスを呼び出し、パラメータ 1 と 2 を渡し、戻り値をユーザー変数 @result に格納します。 SELECT ステートメントを通じて @result の値を表示します。

2. MySQL の関数

Function は、一連の SQL ステートメントをカプセル化する MySQL のもう 1 つのメカニズムであり、C 言語の関数に似ています。プロシージャと比較して関数は軽量であり、出力パラメータと結果セットはサポートされず、入力パラメータと戻り値のみがサポートされます。

1. 構文

関数を作成するための構文は次のとおりです:

CREATE FUNCTION function_name ([parameter_name parameter_type])
RETURNS return_type
BEGIN
   statements;
   RETURN return_value;
END;
このうち、function_name は関数名、parameter_name は関数の入力パラメーター名です。 、parameter_type はパラメータのタイプです。標準的な MySQL データタイプを使用できます。return_type は関数の戻り値のタイプです。

2. 実行プロセス

関数の実行プロセスは実行プロセスと似ており、クライアントが呼び出しリクエストを開始し、MySQL サーバーがリクエストを解析して関数のコード ブロックを実行します。 、最後に結果をクライアントに返します。

3. サンプル プログラム

以下は、入力パラメータと戻り値を含むサンプル プログラムです:

CREATE FUNCTION cube(x INT)
RETURNS INT
BEGIN
   RETURN x * x * x;
END;
上記のプログラムが正常に作成されたら、それを呼び出すことができます。関数:

SELECT cube(2);
上記のコードの意味は、cube 関数を呼び出し、パラメーター 2 を渡し、結果 8 を返すことです。

3. 概要

大規模な MySQL アプリケーションを開発する場合、プロシージャと関数は SQL ステートメント コードをより適切に整理し、開発効率を向上させるのに役立ちます。 2 つの違いは、プロセスは入力パラメーター、出力パラメーター、および結果セットをサポートしており、複雑なビジネス ロジックのカプセル化に適しているのに対し、関数は入力パラメーターと戻り値のみをサポートし、単純な数学的または論理的な計算に適していることです。プロシージャでも関数でも、構文、実行フロー、サンプル プログラムを通じて学習して習得できます。

以上がmysqlプロシージャ関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。