ホームページ > データベース > mysql チュートリアル > mysqlのストアドプロシージャについて解説した記事

mysqlのストアドプロシージャについて解説した記事

PHPz
リリース: 2023-04-17 15:51:17
オリジナル
624 人が閲覧しました

ストアド プロシージャはデータベース システムで一般的に使用されるテクノロジであり、その本質はデータベース アプリケーション システムのパフォーマンスを向上させ、アプリケーション システム開発の難易度を軽減し、セキュリティを向上させることです。 MySQL は、ストアド プロシージャをサポートする一般的なリレーショナル データベース管理システムです。

MySQL ストアド プロシージャの概要
MySQL ストアド プロシージャは、プリコンパイルされて MySQL サーバーに保存される SQL ステートメントであり、パラメータの受け取り、変数の使用、制御構造の組み込み、および複雑なロジックの実装が可能です。操作は結果を返すことができます。ストアド プロシージャの利点は次のとおりです。

  1. アプリケーションのパフォーマンスの向上: ストアド プロシージャはコンパイルされてデータベースに保存され、複数のアプリケーションから繰り返し呼び出すことができるため、プログラムのコンパイルと解釈を繰り返す時間が短縮されます。
  2. アプリケーションのセキュリティの向上: ストアド プロシージャはテーブルへのアクセスを制限し、ストアド プロシージャを使用するユーザーのみにアクセスを許可できます。
  3. アプリケーションの作成を簡素化: アプリケーションは複雑な SQL ステートメントを記述する必要はなく、ストアド プロシージャを呼び出すだけで済みます。
  4. サーバー負荷の軽減: ストアドプロセスはサーバー側で実行されるため、ネットワークデータ送信の圧力が軽減され、クライアントの負荷が軽減されます。

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート