MySQL は、通信とクエリに SQL 言語を使用し、ストアド プロシージャと変数をサポートする、人気のあるオープン ソース リレーショナル データベース管理システムです。この記事では、MySQL ストアド プロシージャと変数の概念と、それらの作成方法と使用方法を紹介します。
MySQL ストアド プロシージャ
ストアド プロシージャは、MySQL に保存して再利用できる SQL ステートメントのコレクションです。特定のタスクを自動化できるため、データベースの処理効率が向上します。ストアド プロシージャは、繰り返しのタスクを完了し、コードを簡素化し、パフォーマンスを向上させ、複雑なタスクをより小さな再利用可能なコンポーネントに減らすためによく使用されます。ストアド プロシージャでは、複数の SQL ステートメントを 1 つのステップで処理できるように、複数の 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
はストアド プロシージャのパラメータ タイプで、整数、文字列、日付などを指定できます。 BEGIN
と END
は、ストアド プロシージャ本体の開始と終了をマークします。残りの 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 を持つ従業員の名前と給与を検索します。
CALL ステートメントを使用して呼び出すことも、MySQL クライアント ツールで使用することもできます。以下は、MySQL ストアド プロシージャ
SHOW_EMPLOYEE を呼び出す簡単な例です。
CALL SHOW_EMPLOYEE(3);上記のコード例では、ストアド プロシージャ
SHOW_EMPLOYEE が呼び出され、パラメータ 3 が合格した。ストアド プロシージャは、ID 3 の従業員の名前と給与を返します。
DECLARE variable_name variable_type [DEFAULT default_value]このうち、
DECLARE は変数を宣言するためのキーワード、
variable_name は変数ですname、
variable_type は変数のタイプ、
default_value はオプションであり、変数のデフォルト値です。変数はストアド プロシージャまたはクエリで使用でき、他の変数からも参照できます。
DECLARE a INT DEFAULT 5; DECLARE b INT DEFAULT 3; DECLARE c INT; SET c = a + b; SELECT c;上記のコード例では、3 つの変数
a,
b と
c が宣言されており、
a のデフォルト値は 5、
b のデフォルト値は 3、
c には何もありませんデフォルト値。次に、コード内の
c を
a と
b の合計に代入し、最後に
c を出力します。
以上がmysqlストアドプロシージャ変数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。