MySQL は非常に人気のあるデータベース管理システムであり、標準の SQL 構文をサポートするだけでなく、ストアド プロシージャや関数などの高度な機能も提供します。この記事では、MySQL の手続き型関数について説明します。
プロセス関数とは何ですか?
手続き型関数は、MySQL データベースで定義された再利用可能なコード ブロックであり、関数に似ていますが、関数よりも強力です。手続き型関数は一連の SQL ステートメントを実行でき、論理演算子と条件ステートメントを使用してフローを制御できます。手続き型関数はパラメーターと戻り値を受け取ることもでき、その構文は標準の SQL 構文とは若干異なります。
MySQL で手続き型関数を定義するための構文
MySQL で手続き型関数を定義するための構文は標準 SQL 構文に似ていますが、いくつかの特定のキーワードと制限があります。
ストアド プロシージャを定義するための構文:
CREATE PROCEDURE procedure_name ([parameter_list]) BEGIN -- SQL statements END;
ストアド ファンクションを定義するための構文:
CREATE FUNCTION function_name ([parameter_list]) RETURNS return_type BEGIN -- SQL statements RETURN return_value; END;
上記の構文では、procedure_name
および function_name
はそれぞれプロシージャと関数の名前です。 [parameter_list]
は、プロシージャまたは関数の呼び出し時に渡すことができるパラメータのオプションのリストです。 -- SQL ステートメント
は、プロシージャまたは関数が実行する必要がある SQL ステートメントです。
ストアド関数の構文では、RETURN return_type
は関数の戻り値の型を指定し、return_value
は関数によって返される値です。
MySQL のプロシージャ関数の例
次のストアド プロシージャの例は、IN
パラメータと OUT
パラメータを受け取ります。これは、次の人の年収になります。従業員 指定された割合を増やす:
CREATE PROCEDURE raise_salary (IN emp_id INT, OUT new_salary DECIMAL(10, 2), IN raise_percent DECIMAL(4, 2)) BEGIN DECLARE current_salary DECIMAL(10, 2); SELECT salary INTO current_salary FROM employees WHERE id = emp_id; SET new_salary = current_salary + (current_salary * raise_percent); UPDATE employees SET salary = new_salary WHERE id = emp_id; END;
上記の例では、DECLARE
を使用してローカル変数を宣言し、SELECT ... INTO
を使用してクエリを保存します。結果を変数に変換します。 SET
は代入に使用され、UPDATE
はデータの更新に使用されます。
次のストアド関数の例は、2 つの IN
パラメータを受け入れ、2 つのパラメータの合計を返します:
CREATE FUNCTION add (IN a INT, IN b INT) RETURNS INT BEGIN DECLARE result INT; SET result = a + b; RETURN result; END;
上の例では、DECLARE
ローカル変数の宣言に使用され、SET
は値の割り当てに使用され、RETURN
は結果を返すために使用されます。
手続き型関数を使用するメリット
手続き型関数を使用すると多くのメリットがあり、以下にその一部を示します:
結論
MySQL の手続き型関数は、パフォーマンス、保守性、クエリの柔軟性を向上させる強力なツールです。開発者は、MySQL データベース アプリケーションの効率を高めるためにそれらを使用する方法を学ぶ必要があります。
以上がMySQL 手続き関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。