MySQL ストアド プロシージャ

王林
リリース: 2024-02-21 12:45:04
オリジナル
1186 人が閲覧しました

MySQL ストアド プロシージャ

MySQL ストアド プロシージャには特定のコード サンプルが必要です

MySQL では、ストアド プロシージャは、データベース サーバー コード上で定義、保存、実行されるプリコンパイル済みプロシージャです。ストアド プロシージャはパラメータを受け入れて結果を返すことができるため、複雑なデータベース操作やビジネス ロジックを処理するのに最適です。

以下では、具体的なコード例を通じて MySQL ストアド プロシージャの使用方法を紹介します。

「employees」という名前の従業員情報テーブルがあり、従業員番号、名前、年齢、部門などのフィールドが含まれているとします。指定した年齢範囲内の従業員情報をクエリするストアド プロシージャを作成する必要があります。

まず、「従業員」テーブルを作成し、サンプル データを挿入する必要があります:

CREATE TABLE employees (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  age INT NOT NULL,
  department VARCHAR(50) NOT NULL
);

INSERT INTO employees (name, age, department)
VALUES ('张三', 25, '销售部'),
       ('李四', 30, '人力资源部'),
       ('王五', 35, '技术部'),
       ('赵六', 40, '财务部');
ログイン後にコピー

次に、年齢範囲に基づいて従業員情報をクエリするストアド プロシージャを作成できます:

DELIMITER //

CREATE PROCEDURE GetEmployeesByAgeRange(IN minAge INT, IN maxAge INT)
BEGIN
  SELECT * FROM employees WHERE age >= minAge AND age <= maxAge;
END //

DELIMITER ;
ログイン後にコピー

上記のコードでは、DELIMITER キーワードを使用して、ストアド プロシージャ定義を終了する区切り文字を指定します。次に、CREATE PROCEDURE ステートメントを使用して、GetEmployeesByAgeRange という名前のストアド プロシージャを作成しました。このストアド プロシージャは、年齢範囲を指定する 2 つの入力パラメータ minAgemaxAge を受け入れます。ストアド プロシージャ本体では、SELECT ステートメントを使用して、条件を満たす従業員情報をクエリします。

最後に、DELIMITER キーワードを使用して、元のステートメント区切り文字を復元します。

これで、ストアド プロシージャを呼び出して従業員情報をクエリできるようになります。 30 歳から 35 歳までの従業員情報をクエリする必要があると仮定すると、次のコードを実行できます:

CALL GetEmployeesByAgeRange(30, 35);
ログイン後にコピー

上記のコードを実行すると、次の結果が得られます:

+----+------+-----+-----------------+
| id | name | age | department      |
+----+------+-----+-----------------+
|  2 | 李四 |  30 | 人力资源部      |
|  3 | 王五 |  35 | 技术部           |
+----+------+-----+-----------------+
ログイン後にコピー

Through上記のコード例では、MySQL ストアド プロシージャの使用方法を確認できます。ストアド プロシージャは、必要に応じて複数回呼び出すことができる事前定義されたコード ブロックを作成することで、複雑なデータベース操作を実装できます。

要約すると、MySQL のストアド プロシージャは、開発者の作業効率を大幅に向上させ、重複コードを削減できる強力なデータベース機能です。ストアド プロシージャの使用に習熟すると、さまざまなデータベース操作やビジネス ロジックをより効率的かつ柔軟に処理できるようになります。

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

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