MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

INパラメータを使用したMySQLストアドプロシージャの作成方法を徹底解説

MySQLのストアドプロシージャでは、INパラメータを使うことで、呼び出し時に値を渡し、その値に基づいた処理を実行できます。ここでは、具体的な例を通じてINパラメータ付きストアドプロシージャの作成方法をわかりやすく解説します。

サンプルテーブル「student_info」の準備

まず、理解を深めるために、以下のデータを持つ「student_info」テーブルを使用します。

mysql> Select * from student_info;
+-----+---------+------------+------------+
| id  | Name    | Address    | Subject    |
+-----+---------+------------+------------+
| 101 | YashPal | Amritsar   | History    |
| 105 | Gaurav  | Jaipur     | Literature |
| 110 | Rahul   | Chandigarh | History    |
| 125 | Raman   | Shimla     | Computers  |
+-----+---------+------------+------------+
4 rows in set (0.00 sec)

INパラメータ付きストアドプロシージャの作成

次に、以下のクエリを実行して、学生の名前をパラメータとして渡すと、その学生のすべての詳細情報を表示するストアドプロシージャを作成します。

mysql> DELIMITER // ;
mysql> Create PROCEDURE detail(IN S_Name VARCHAR(20))
    -> BEGIN
    -> SELECT * From Student_info WHERE Name = S_Name;
    -> END //
Query OK, 0 rows affected (0.16 sec)
mysql> DELIMITER ;

このストアドプロシージャ「detail」において、S_Name がINパラメータとして定義されています。プロシージャが呼び出されると、渡された名前と一致するレコードが student_info テーブルから検索され、結果として表示されます。

ストアドプロシージャの実行例

それでは、実際にプロシージャを呼び出して動作を確認してみましょう。学生「Gaurav」の詳細情報を取得するには、以下のクエリを実行します。

mysql> CALL detail('Gaurav');
+-----+--------+---------+------------+
| id  | Name   | Address | Subject    |
+-----+--------+---------+------------+
| 105 | Gaurav | Jaipur  | Literature |
+-----+--------+---------+------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

同様に、別の名前を指定して呼び出すこともできます。例えば「Raman」を指定した場合の実行結果は以下の通りです。

mysql> CALL detail('Raman');
+-----+-------+---------+-----------+
| id  | Name  | Address | Subject   |
+-----+-------+---------+-----------+
| 125 | Raman | Shimla  | Computers |
+-----+-------+---------+-----------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

まとめ

このように、INパラメータを使用したストアドプロシージャを作成すれば、名前などの条件値を引数として渡すだけで、柔軟にデータを取得できます。同じような検索処理を繰り返し実行する場合、ストアドプロシージャを活用することでSQLの再利用性が高まり、アプリケーション側のコードもシンプルになります。

  1. 【MySQL入門】RIGHT JOINを使ってビュー(VIEW)を作成する方法を実例付きで解説

    MySQLでは、RIGHT JOIN(右外部結合)を使用したSELECT文からもビュー(VIEW)を作成できます。本記事では、「Customers」テーブルと「Reserve」テーブルのデータを例に、RIGHT JOINによるビュー作成の手順を具体的に解説します。 使用するサンプルデータ まず、例として使用する2つのテーブルの内容を確認しておきましょう。「Customers」には顧客情報が、「Reserve」には車の予約履歴が格納されています。 mysql> Select * from Customers; +-------------+----------+ | Customer_

  2. MySQLのDELIMITER(区切り文字)を使ってストアドプロシージャを作成・実行する方法

    MySQLでは、CREATE PROCEDUREコマンドを使用することでストアドプロシージャを作成できます。ストアドプロシージャの中には複数のSQL文が含まれますが、そのまま定義すると文の区切りを示すセミコロン(;)がプロシージャ本体の途中で解釈されてしまいます。そこで、一時的に区切り文字を変更する必要があります。 基本的な構文 delimiter // CREATE PROCEDURE yourStoreProcedureName() BEGIN -- ここで変数を宣言します -- クエリ文を記述します END // delimiter ; ストアドプロシージャの作成例 上