MySQL は、大量のデータの処理に優れた、人気のあるオープン ソースのリレーショナル データベース管理システムです。ストアド プロシージャは、データ テーブルと対話し、クエリで呼び出すことができる再利用可能なコード ブロックです。
この記事では、ストアド プロシージャを作成する方法と、MySQL でストアド プロシージャを呼び出して使用する方法を紹介します。
1. ストアド プロシージャを作成する
MySQL では、通常、ストアド プロシージャを作成するには次の手順が必要です:
1. MySQL データベースに接続します。
2. CREATE PROCEDURE コマンドを実行してストアド プロシージャを定義します。
3. ストアド プロシージャでロジックを定義します。
以下はサンプル ストアド プロシージャです:
DELIMITER // CREATE PROCEDURE getUsers() BEGIN SELECT * FROM users; END // DELIMITER ;
上の例では、users テーブル内のすべてのレコードを返す getUsers という名前のストアド プロシージャを定義します。
ここでは、特別な DELIMITER コマンドを使用して、SQL クエリをストアド プロシージャから分離する方法を MySQL に指示します。
次に、CREATE PROCEDURE コマンドを使用してストアド プロシージャを定義します。ストアド プロシージャの名前、受信パラメータ、ロジック、および出力結果を指定します。
ストアド プロシージャで BEGIN および END コマンドを使用して、コード ブロックにロジックを配置していることに注意してください。
最後に、DELIMITER コマンドを使用して SQL クエリの新しい区切り文字を指定します。デフォルトではセミコロン (;) です。これは、ストアド プロシージャでセミコロンを使用することによって発生する構文エラーを回避するために行われます。
2. ストアド プロシージャを呼び出す
ストアド プロシージャを作成したら、関数を呼び出すのと同じようにクエリ内でそれを参照できます。例:
CALL getUsers();
ストアド プロシージャを呼び出した後、途中で定義されたロジックが実行され、結果が返されます。
3. パラメータの受け渡し
ストアド プロシージャは、受信パラメータを使用してさまざまなロジックを実行できます。例を次に示します。
DELIMITER // CREATE PROCEDURE getUserById(IN id INT) BEGIN SELECT * FROM users WHERE id = id; END // DELIMITER ;
上の例では、getUserById という名前のストアド プロシージャを作成し、入力パラメータ ID を定義しました。ストアド プロシージャでは、WHERE ステートメントを使用して ID を照合し、レコードを返します。
ストアド プロシージャを呼び出すときは、パラメータを渡す必要があります。例:
CALL getUserById(1);
これにより、ID 1 のユーザー レコードが返されます。
4. ストアド プロシージャを変更する
場合によっては、ストアド プロシージャの変更が必要になることがあります。これは簡単に達成できます。次のコマンドを使用して、既存のストアド プロシージャを変更できます。
ALTER PROCEDURE getUsers() BEGIN SELECT * FROM users WHERE age > 18; END;
上の例では、18 歳より古いユーザー レコードのみを返すように getUsers ストアド プロシージャを変更しました。このようにして、さまざまなビジネス ニーズに合わせてストアド プロシージャを簡単に変更できます。
5. ストアド プロシージャを削除する
ストアド プロシージャが不要になった場合は、次のコマンドを使用して削除できます:
DROP PROCEDURE getUsers;
上記のコマンドは名前を削除します。 getUsers ストアド プロシージャ。ストアド プロシージャを削除すると、その定義と関連レコードが完全に削除されることに注意してください。
概要
ストアド プロシージャは、MySQL の重要な機能の 1 つです。ストアド プロシージャを作成すると、コードを効率的に整理して再利用し、複雑な操作を実行できるようになります。この記事を参照すれば、ストアド プロシージャを作成して呼び出す準備が整ったはずです。 MySQL の詳細については、公式ドキュメントを参照してください。
以上がストアド プロシージャ mysql を作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。