MySQL ストアド プロシージャと関数
MySQL は、データの整合性、セキュリティ、一貫性を確保しながら、効率的なデータ アクセスと操作を実現できる強力なデータベース管理システムです。より効率的な操作とより複雑な関数を実現するために、MySQL はストアド プロシージャとストアド関数のサポートを提供しています。この記事では、これら 2 つの概念を詳しく紹介し、デモンストレーションします。
1. MySQL ストアド プロシージャ
1.1 ストアド プロシージャとは何ですか?
ストアド プロシージャは、データベース サーバー上で定義してデータベース オブジェクトとして保存できる SQL ステートメントのコレクションです。ストアド プロシージャは呼び出し元によって実行され、パラメータを受け入れ、処理後に結果を返すことができます。ストアド プロシージャは、データベース アプリケーションのパフォーマンスとセキュリティを向上させる再利用可能なデータベース プログラム モジュールです。
1.2 ストアド プロシージャを作成するにはどうすればよいですか?
ストアド プロシージャを作成するための構文は次のとおりです。
CREATE PROCEDURE procedure_name(parameter_list) BEGIN -- 存储过程主体,包含多条SQL语句 END;
このうち、procedure_name
はストアド プロシージャの名前、parameter_list
ストアド プロシージャのパラメータ リストです。ストアド プロシージャの本体は BEGIN
と END
の間に配置され、複数の SQL ステートメントが含まれています。ストアド プロシージャ内では、変数、条件ステートメント、ループ ステートメントなどの構文構造を使用できます。
1.3 ストアド プロシージャの例
次に、従業員の名前に基づいて従業員の詳細をクエリできる簡単なストアド プロシージャの例を示します。 emp_name
は入力パラメータであり、ストアド プロシージャはこのパラメータに基づいて従業員情報をクエリします。employee テーブルに
emp_name に関連するレコードがない場合、クエリ結果は空になります。
このストアド プロシージャの使用方法は次のとおりです。
CREATE PROCEDURE get_employee_info(IN emp_name VARCHAR(50)) BEGIN SELECT * FROM employee WHERE name = emp_name; END;
get_employee_info
を呼び出し、パラメータ'John'## を渡します。 # ストレージプロセスに。 2. MySQL 関数
2.1 関数とは何ですか?
関数は、特定のタスクを実行し、0 個以上のパラメーターを受け取り、値を返すコードのブロックです。関数の戻り値は、スカラー値または複数行の結果セットになります。 MySQL は一連の組み込み関数を提供しており、ユーザーは独自の関数を作成することもできます。
2.2 関数を作成するにはどうすればよいですか?
関数を作成するための構文は次のとおりです。
CALL get_employee_info('John');
このうち、
function_nameは関数の名前、
parameter_list はパラメータです。関数のリストと返されるデータ型 return_type
で指定されます。関数本体は BEGIN
と END
の間に配置され、複数の SQL ステートメントが含まれます。変数、条件文、ループ文などの文法構造は関数内で使用できます。 2.3 関数の例
次に、2 つの数値の合計を計算できる簡単な関数の例を示します。
CREATE FUNCTION function_name(parameter_list) RETURNS return_type BEGIN -- 函数主体,包含多条SQL语句 END;
この関数は 2 つの整数パラメーターを受け取ります
xと
y を計算し、変数 result
を使用してそれらの合計を計算します。この関数は最終的に結果を整数として返します。 この関数の使用方法は次のとおりです。
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>CREATE FUNCTION add(x INT, y INT) RETURNS INT
BEGIN
DECLARE result INT;
SET result = x + y;
RETURN result;
END;</pre><div class="contentsignin">ログイン後にコピー</div></div>このステートメントは関数 add<p> を呼び出し、結果をクエリ結果に表示します。このステートメントを実行すると、結果 </p>5<p> が得られるはずです。 <code>
概要この記事では、MySQL のストアド プロシージャと関数の概念、構文、使用法を紹介し、対応する例を示します。ストアド プロシージャとストアド関数はどちらもデータベース アプリケーションの効率とセキュリティを向上させることができ、特定のニーズに応じて選択して使用できます。実際のアプリケーションでは、ビジネスロジックやデータ処理の特性に合わせて、対応した設計・開発を行うことができます。
以上がmysqlストアドプロシージャ関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。