ホームページ >データベース >mysql チュートリアル >mysqlストアドプロシージャ変数

mysqlストアドプロシージャ変数

WBOY
WBOYオリジナル
2023-05-08 18:45:371452ブラウズ

MySQL は、通信とクエリに SQL 言語を使用し、ストアド プロシージャと変数をサポートする、人気のあるオープン ソース リレーショナル データベース管理システムです。この記事では、MySQL ストアド プロシージャと変数の概念と、それらの作成方法と使用方法を紹介します。

MySQL ストアド プロシージャ

ストアド プロシージャは、MySQL に保存して再利用できる SQL ステートメントのコレクションです。特定のタスクを自動化できるため、データベースの処理効率が向上します。ストアド プロシージャは、繰り返しのタスクを完了し、コードを簡素化し、パフォーマンスを向上させ、複雑なタスクをより小さな再利用可能なコンポーネントに減らすためによく使用されます。ストアド プロシージャでは、複数の SQL ステートメントを 1 つのステップで処理できるように、複数の SQL ステートメントをパッケージ化することもできます。

ストアド プロシージャは通常、次の状況で使用されます。

  • 繰り返しタスク: 同じ一連の SQL ステートメントを繰り返し実行する必要がある場合、毎回入力する必要はありません。 。これらの SQL ステートメントをストアド プロシージャとしてパッケージ化し、どこからでも呼び出して実行できるようにします。
  • プログラムのモジュール化: ストアド プロシージャを使用すると、複雑な SQL ステートメントをモジュール式コンポーネントに分割できます。こうすることで、プログラムのロジックとその実行方法をよりよく確認できます。
  • データの保護: ストアド プロシージャは、より強力なセキュリティを備えながら、データへのアクセスと変更を実行できます。これにより、ユーザーは重要なデータに対して特定の操作を実行できなくなります。
  • ビジネス ルールの導入: ストアド プロシージャにはデータベース内のビジネス ルールを含めることができるため、システム内のビジネス ルールの分散が軽減されます。

ストアド プロシージャは変数と同様にデータベースに保存でき、MySQL コマンド ライン、PHP、Java、.NET などを含むすべての MySQL クライアントで使用できます。

MySQL ストアド プロシージャの作成

MySQL ストアド プロシージャを作成するには、特定の構文ルールに従う必要があります。以下はストアド プロシージャを作成するためのテンプレートです。

CREATE PROCEDURE procedure_name
(
    [IN | OUT | INOUT] parameter_name parameter_type
    [, [IN | OUT | INOUT] parameter_name parameter_type]...
)
BEGIN
    -- 存储过程体
    SQL语句;
    执行的任务;
END

このうち、CREATE PROCEDURE はストアド プロシージャの宣言、procedure_name はストアド プロシージャの名前です。プロシージャ、parameter_name はストアド プロシージャのパラメータ名です。parameter_type はストアド プロシージャのパラメータ タイプで、整数、文字列、日付などを指定できます。 BEGINEND は、ストアド プロシージャ本体の開始と終了をマークします。残りの SQL ステートメントと実行タスクはストアド プロシージャ本体内で実行されます。

以下は、従業員の名前と給与をクエリする単純な MySQL ストアド プロシージャを作成する例です。

CREATE PROCEDURE SHOW_EMPLOYEE(IN employee_id INT)
BEGIN
    SELECT name, salary
    FROM employees
    WHERE id = employee_id;
END

上記のサンプル コードでは、まず ## という名前のファイルを作成します。 #SHOW_EMPLOYEE のプロシージャで、渡されるパラメータは employee_id という名前の IN 型整数です。次に、ストアド プロシージャ本体は SQL クエリを実行して、employees テーブル内の指定された ID を持つ従業員の名前と給与を検索します。

MySQL ストアド プロシージャの使用

ストアド プロシージャを作成したら、それを呼び出して使用できます。ストアド プロシージャは、

CALL ステートメントを使用して呼び出すことも、MySQL クライアント ツールで使用することもできます。以下は、MySQL ストアド プロシージャ SHOW_EMPLOYEE を呼び出す簡単な例です。

CALL SHOW_EMPLOYEE(3);

上記のコード例では、ストアド プロシージャ

SHOW_EMPLOYEE が呼び出され、パラメータ 3 が合格した。ストアド プロシージャは、ID 3 の従業員の名前と給与を返します。

MySQL 変数

MySQL 変数はデータを保存する方法の 1 つであり、ストアド プロシージャやクエリの実行中にデータを作成および保存できます。変数には、整数、文字列、日付などのさまざまなタイプのデータを格納できます。

MySQL 変数は次の構文を使用して宣言されます:

DECLARE variable_name variable_type [DEFAULT default_value]

このうち、

DECLARE は変数を宣言するためのキーワード、variable_name は変数ですname、variable_type は変数のタイプ、default_value はオプションであり、変数のデフォルト値です。変数はストアド プロシージャまたはクエリで使用でき、他の変数からも参照できます。

以下は、2 つの整数の加算を計算するために使用される MySQL 変数の例です。

DECLARE a INT DEFAULT 5;
DECLARE b INT DEFAULT 3;
DECLARE c INT;

SET c = a + b;
SELECT c;

上記のコード例では、3 つの変数

a,bc が宣言されており、a のデフォルト値は 5、b のデフォルト値は 3、c には何もありませんデフォルト値。次に、コード内の cab の合計に代入し、最後に c を出力します。

結論

MySQL ストアド プロシージャと変数は、開発者がタスクをより効率的に完了するのに役立つと同時に、データベース処理のパフォーマンスも向上します。ストアド プロシージャと変数を使用することで、開発者はデータベース操作をよりモジュール化し、より強力なビジネス ルールとセキュリティを実装できます。実際の開発作業では、コードの可読性と保守性を確保するために、開発者は MySQL ストアド プロシージャと変数のベスト プラクティスに常に注意を払う必要があります。

以上がmysqlストアドプロシージャ変数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。