ストアド プロシージャはデータベース システムで一般的に使用されるテクノロジであり、その本質はデータベース アプリケーション システムのパフォーマンスを向上させ、アプリケーション システム開発の難易度を軽減し、セキュリティを向上させることです。 MySQL は、ストアド プロシージャをサポートする一般的なリレーショナル データベース管理システムです。
MySQL ストアド プロシージャの概要
MySQL ストアド プロシージャは、プリコンパイルされて MySQL サーバーに保存される SQL ステートメントであり、パラメータの受け取り、変数の使用、制御構造の組み込み、および複雑なロジックの実装が可能です。操作は結果を返すことができます。ストアド プロシージャの利点は次のとおりです。
MySQL ストアド プロシージャの構文形式
MySQL ストアド プロシージャの構文形式は次のとおりです:
CREATE PROCEDURE procedure_name ([IN | OUT | INOUT] parameter_name datatype[(size)]) [NOT DEMETER] routine_body
その中に:
CREATE PROCEDURE は作成を意味します。ストアド プロシージャ。
procedure_name はストアド プロシージャの名前であり、一意である必要があります。
IN | OUT | INOUT はパラメータの受け渡しメソッドであり、オプションのパラメータです。 IN は入力パラメータ (デフォルト) を表し、OUT は出力パラメータを表し、INOUT は入力パラメータと出力パラメータの両方を表します。
parameter_name はパラメータの名前であり、一意である必要があります。
datatype[(size)] はパラメータのデータ型と長さであり、省略可能です。
NOT DEMETER はオプションで、ストアド プロシージャが他のトランザクションのデータを使用できないことを示します。
routine_body は、SQL ステートメントや制御構造を含むストアド プロシージャの本体です。
MySQL ストアド プロシージャの例
次は、学生情報の挿入、削除、変更、およびクエリ操作を実装する MySQL ストアド プロシージャの例です。
CREATE PROCEDURE student_info(IN s_add INT, IN s_name VARCHAR(20), IN s_age INT, IN s_gender VARCHAR(10), IN s_id INT, OUT result INT) BEGIN DECLARE flag INT DEFAULT 0; IF(s_add = 1) THEN INSERT INTO students VALUES(s_id, s_name, s_age, s_gender); ELSEIF(s_add = 2) THEN UPDATE students SET name = s_name, age = s_age, gender = s_gender WHERE id = s_id; ELSEIF(s_add = 3) THEN DELETE FROM students WHERE id = s_id; ELSEIF(s_add = 4) THEN SELECT * FROM students WHERE name = s_name; ELSE SET flag = 1; END IF; IF(flag = 0) THEN SET result = 0; ELSE SET result = 1; END IF; END
以上の保存処理により、生徒情報の追加、削除、変更、照会が可能となります。ストアド プロシージャを呼び出す際には、パラメータ s_add (操作の種類)、s_name (名前)、s_age (年齢)、s_gender (性別)、s_id (学生 ID) を渡し、出力パラメータの結果 (実行結果) を取得する必要があります。 。
概要
MySQL ストアド プロシージャは、アプリケーションのパフォーマンスとセキュリティを向上させ、アプリケーションの作成を簡素化し、サーバーの負荷を軽減できる効率的なデータベース アプリケーション テクノロジです。上記の紹介を通じて、MySQL ストアド プロシージャの基本的な構文と使い方を理解することができ、皆様のお役に立てれば幸いです。
以上がmysqlのストアドプロシージャについて解説した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。