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

MySQLストアドプロシージャで数学演算を実行する方法

MySQLのストアドプロシージャで計算処理を行う

MySQLのストアドプロシージャを利用すると、金額×数量のような数学演算をまとめて定義し、必要なときに簡単に呼び出して実行できます。ここでは、引数として受け取った「amount(金額)」と「quantity(数量)」を掛け合わせて合計を求めるプロシージャを作成する手順を紹介します。

ストアドプロシージャの作成

まず、delimiter を変更してプロシージャ本体を定義します。以下の例では、amount と quantity の2つの INT 型引数を受け取り、その積を「Total」として表示します。

mysql> delimiter //
mysql> create procedure calculation_proc(amount int,quantity int)
     begin
     select amount,quantity,(amount*quantity) as Total;
     end
     //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

プロシージャの作成が完了したら、区切り文字を通常のセミコロン(;)に戻しておきましょう。

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

作成したプロシージャは、CALL コマンドを使って呼び出せます。引数には金額と数量を指定します。

mysql> call calculation_proc(250,3);

実行結果

上記のコマンドを実行すると、次のように amount、quantity、そして計算結果の Total が出力されます。

+--------+----------+-------+
| amount | quantity | Total |
+--------+----------+-------+
|    250 |        3 |   750 |
+--------+----------+-------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)

このように、250 × 3 = 750 という計算結果が正しく返されていることが確認できます。ストアドプロシージャを活用すれば、頻繁に使う計算処理をデータベース側にカプセル化でき、アプリケーション側のコードもシンプルになります。

  1. MySQLストアドプロシージャで2つの値を宣言し、数学演算を実行する方法

    MySQLストアドプロシージャで変数を宣言して演算を行う方法 MySQLのストアドプロシージャでは、DECLARE文を使ってローカル変数を宣言し、SET文で値を代入することができます。ここでは、2つの整数型の値を宣言し、その積(掛け算)を計算して表示するストアドプロシージャの作成手順を、サンプルコードとともに解説します。 1. ストアドプロシージャの作成 まず、delimiterコマンドでステートメントの区切り文字を変更し、ストアドプロシージャを作成します。 mysql> delimiter // mysql> create procedure declare_demo_sp()

  2. MySQLストアドプロシージャでテーブルにデータを挿入する方法

    MySQLのストアドプロシージャを使ってテーブルにデータを挿入するには、以下のような構文を使用します。create procedure yourProcedureName(OptionalParameter) begin insert into yourTableName() values(yourValue1,yourValue2,...N); endサンプルテーブルの作成まずは、この構文を実際に理解するために、テスト用のテーブルを作成してみましょう。mysql> create table DemoTable1928 ( Id int NOT NULL