MySQL ストアド プロシージャは、一連の SQL ステートメントを実行して特定の機能を完了できる再利用可能なデータベース プログラムです。一部の複雑な SQL ステートメントやアプリケーション内の SQL ステートメントと比較して、ストアド プロシージャの利点は、プログラムの操作効率とセキュリティを大幅に向上できることです。
構文
MySQL ストアド プロシージャは、「CREATE PROCEDURE」ステートメントを使用して定義されます。簡単な例を次に示します:
CREATE PROCEDURE procedure_name ([IN/OUT] parameter_name data_type) BEGIN SQL statement; SQL statement; ... END
ストアド プロシージャ ステートメントは「BEGIN」で始まり「END」で終わり、途中に SQL ステートメントとプログラム制御構造があります。パラメータには、入力、出力、または入出力モードを指定できます。
例
従業員の位置情報を出力するストアド プロシージャの例を次に示します。
CREATE PROCEDURE employee_role(IN emp_id INT) BEGIN SELECT employee_name, department_name, role_name FROM employee, department, role WHERE employee.department_id = department.department_id AND employee.role_id = role.role_id AND employee_id = emp_id; END
このストアド プロシージャでは、入力パラメータは emp_id で、型は INT です。 。プログラムは必要なデータを照会し、従業員の名前、部門名、役職を出力します。
ストアド プロシージャの呼び出し
ストアド プロシージャを定義した後、CALL ステートメントを使用して呼び出すことができます。簡単な例を次に示します:
CALL procedure_name (parameter1, parameter2, ...);
例:
CALL employee_role(1001);
この呼び出しは、従業員 1001 の名前、部門名、および役職を出力します。
入力、出力、入力および出力パラメータ
パラメータ "IN"、"OUT"、および "INOUT" キーワードを追加することで、入力、出力、および入力および出力パラメータを定義できます。
IN パラメータは、ストアド プロシージャの入力パラメータ、つまりプログラムの実行時に渡されるパラメータ値を参照します。次の構文を使用します:
CREATE PROCEDURE procedure_name(IN parameter1 data_type)
OUT パラメータは、ストアド プロシージャの出力パラメータ。ストアド プロシージャの最後に指定された値が返されます。構文は次のとおりです:
CREATE PROCEDURE procedure_name(OUT parameter1 data_type)
INOUT パラメータは、入力と出力の両方で変更できるパラメータを指します。次の構文が使用されます。
CREATE PROCEDURE procedure_name(INOUT parameter1 data_type)
ループ構造
MySQL ストアド プロシージャは、WHILE、REPEAT/UNTIL、LOOP、FOR などのさまざまなループ構造をサポートします。その中で、WHILE 構造と REPEAT/UNTIL 構造が最もよく使用されます。
WHILE 構造:
WHILE condition DO statement(s); END WHILE;
REPEAT/UNTIL 構造:
REPEAT statement(s); UNTIL condition;
ループ ステートメントの「条件」は論理式です。条件が true である限り、ループは継続します。実装します。
条件ステートメント
MySQL ストアド プロシージャは、IF、IF-ELSE、CASE WHEN ステートメントなどの条件ステートメントもサポートしています。単純な IF ステートメントの例を次に示します。
IF salary > 10000 THEN SET bonus = 500; ELSE SET bonus = 200; END IF;
この IF ステートメントは、ボーナス変数を 500 または 200 に設定します。
概要
MySQL ストアド プロシージャは、一連の SQL ステートメントを実行し、特定の関数を完了するために使用される再利用可能なデータベース プログラムです。ストアド プロシージャは、プログラムの実行効率と安全性を向上させることができます。その構文には、定義、呼び出し、入出力パラメータ、ループ構造、条件文などが含まれます。 MySQL ストアド プロシージャを学習すると、プログラミング効率を向上させ、より強力な SQL クエリ ステートメントを作成するのに非常に役立ちます。
以上がmysqlストアドプロシージャステートメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。