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

MySQLストアドプロシージャでSELECT INTOを使ってテーブルからOUTパラメータにデータを読み込む方法

MySQLのストアドプロシージャでテーブルからデータを読み取り、OUTパラメータに格納するには、SELECT INTO構文を使用します。この記事では、テーブルの作成からストアドプロシージャの呼び出しまで、具体的な手順をサンプルコードとともに解説します。

1. サンプルテーブルの作成

まず、動作確認用のテーブルを作成します。

mysql> create table DemoTable1860
    (
    Amount int
    );
Query OK, 0 rows affected (0.00 sec)

2. レコードの挿入

INSERTコマンドを使用して、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable1860 values(1590);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1860 values(410);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1860 values(3000);
Query OK, 1 row affected (0.00 sec)

3. テーブルの内容を確認

SELECT文でテーブルの全レコードを表示します。

mysql> select * from DemoTable1860;

実行結果は以下のとおりです。

+--------+
| Amount |
+--------+
|   1590 |
|    410 |
|   3000 |
+--------+
3 rows in set (0.00 sec)

4. OUTパラメータを持つストアドプロシージャの作成

次に、OUTパラメータを使用してテーブルの合計値を取得するストアドプロシージャを作成します。プロシージャ本体では、SELECT INTOを使ってSUM関数の集計結果をOUTパラメータに格納しています。

mysql> delimiter //
mysql> create procedure use_of_out_parameter(out TotalAmount int)
    begin
    select sum(Amount) into TotalAmount from DemoTable1860;
    end
    //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

なお、delimiter //はプロシージャ内のセミコロン(;)が文の区切りとして解釈されないようにするための設定です。プロシージャ作成後は、delimiter ;で元に戻します。

5. ストアドプロシージャの呼び出し

CALLコマンドでストアドプロシージャを呼び出し、結果をユーザー定義変数に受け取ります。

mysql> call use_of_out_parameter(@TotalAmount);
Query OK, 1 row affected (0.00 sec)

6. OUTパラメータの値を確認

最後に、パラメータ変数の値をSELECT文で確認します。

mysql> select @TotalAmount;

実行結果は以下のとおりです。Amount列の合計値(1590 + 410 + 3000 = 5000)がOUTパラメータに正しく格納されていることがわかります。

+--------------+
| @TotalAmount |
+--------------+
|         5000 |
+--------------+
1 row in set (0.00 sec)

このように、SELECT INTO構文を活用することで、ストアドプロシージャ内のクエリ結果をOUTパラメータ経由で呼び出し元に返すことができます。集計結果や単一の値を取得したい場合に非常に便利な手法です。

  1. SELECTでテーブル全体を返すMySQLストアドプロシージャの作成方法

    MySQLでは、ストアドプロシージャ内でSELECT文を実行することで、引数で渡した条件に一致するレコード(この例ではテーブル全体)を結果として返すことができます。ここでは、テーブルの作成からプロシージャの呼び出しまで、手順を追って解説します。 1. サンプルテーブルの作成 まず、テーブルを作成します。 mysql> create table DemoTable1971     (     StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,  &n

  2. PythonでMySQLのテーブルから全データを取得する方法を解説

    MySQLのテーブルは、行(レコード)と列(フィールド)で構成されています。列はデータの項目(フィールド)を定義し、行は実際のデータレコードを表します。テーブルに格納されたデータは、利用するために取得する必要があります。場合によっては、テーブルからすべてのデータを一度に取得したいこともあるでしょう。テーブルからすべての行を取得するには、SELECT * ステートメントを使用します。基本構文SELECT * FROM テーブル名上記の構文における「*」は、テーブルからすべての行を取得することを意味しています。PythonでMySQLを使ってテーブルの全データを取得する手順MySQLコネクタをイン