算術演算子の使い方

算術演算子は四則演算を行う為の演算子です。加算、減算、乗算、除算、剰余などを計算することができます。 MySQL で利用可能な算術演算子は次の通りです。

演算子使用例意味
+a + ba に b を加える
-a - ba から b を引く
*a * ba に b をかける
/a / ba を b で割る
DIVa DIV ba を b で割る(整数除算)
%a % ba を b で割った余り
MODa MOD ba を b で割った余り

ここでは MySQL で利用可能な算術演算子の使い方について解説します。

(Last modified: )

加算

加算を表す '+' は左辺の値に右辺の値を加えたものを返します。

select 10 + 4, 12.8 + 7.92, 4.5 + 3.5, 7.2 + 4, 3.0 + 2.0;

加算(1)

左辺及び右辺が整数の場合は結果も整数ですが、どちらかが浮動小数点数の場合は結果も浮動小数点数となります。

カラム名を指定した場合には、カラムに格納されている値に対して計算が行われます。下記では test1 テーブルにある num1 カラムと num2 カラムに格納されている値を加算した結果を取得しています。

select num1, num2, num1 + num2 from test1;

加算(2)

減算

減算を表す '-' は左辺の値から右辺の値を引いたものを返します。

select 10 - 7, 8.8 - 17.92, 4.5 - 3.5, 5.7 - 10, 3.0 - 2.0;

減算(1)

左辺及び右辺が整数の場合は結果も整数ですが、どちらかが浮動小数点数の場合は結果も浮動小数点数となります。

カラム名を指定した場合には、カラムに格納されている値に対して計算が行われます。下記では test1 テーブルにある num1 カラムの値から num2 カラムに格納されている値を減算した結果を取得しています。

select num1, num2, num1 - num2 from test1;

減算(2)

乗算

乗算を表す '*' は左辺の値に右辺の値を掛けたものを返します。

select 10 * 7, 8.8 * 2.14, -13 * 2.1, 1.2 * 0.11456;

乗算(1)

左辺及び右辺が整数の場合は結果も整数ですが、どちらかが浮動小数点数の場合は結果も浮動小数点数となります。

カラム名を指定した場合には、カラムに格納されている値に対して計算が行われます。下記では test1 テーブルにある num1 カラムと num2 カラムに格納されている値を乗算した結果を取得しています。

select num1, num2, num1 * num2 from test1;

乗算(2)

除算

除算を表す '/' は左辺の値を右辺の値を割ったものを返します。

select 10 / 2, 10 / 3, 1.4 / 3.1, 1.40 / 3.1, 1.400 / 3.1;

除算(1)

除算の場合は結果はいずれにしても浮動小数点数となります。また結果の小数点以下の桁数は左辺の数値の小数点以下の桁数にシステム変数 div_precision_increment の値を加えたものとなります。下記の通りこの値のデフォルトの値は 4 となっています。

show variables like 'div_precision_increment';

除算(2)

つまり 4 / 3 は左辺の数値の小数点以下の桁数が 0 なので結果の小数点以下の桁数は 0 + 4 = 4 となり 1.3333 となります。 4.1 / 3 なら左辺の小数点以下の桁数が 1 なので結果の小数点以下の桁数は 1 + 4 = 5 となり 1.36667 となります。

右辺の小数点以下の桁数は関係ない点に注意して下さい。例えば 4 / 3.335 の場合は右辺の数値の小数点以下の桁数が 3 ですが、左辺の数値の小数点以下の桁数が 0 なので結果の小数点以下の桁数は 0 + 4 = 4 となり 1.1994 となります。

カラム名を指定した場合には、カラムに格納されている値に対して計算が行われます。下記では test1 テーブルにある num1 カラムの値を num2 カラムに格納されている値で除算した結果を取得しています。

select num1, num2, num1 / num2 from test1;

除算(3)

DIV

DIV は左辺の値を右辺の値を割った値の整数部分を返します。

select 9 DIV 2, 18 DIV 5, 5.4 DIV 3, 5.4 DIV 3.5, -12.49 DIV 3;

DIV(1)

’/’ との違いは除算した結果として整数部分の値だけを返してくるという点です。

カラム名を指定した場合には、カラムに格納されている値に対して計算が行われます。下記では test1 テーブルにある num1 カラムの値を num2 カラムに格納されている値で割った値の整数部分を取得しています。

select num1, num2, num1 DIV num2 from test1;

DIV(2)

剰余

剰余を表す '%' は左辺の値を右辺の値を割った余りを返します。

select 5 % 2, -7 % 3, 134.63 % 3, 5.24 % 1.7;

剰余(1)

整数及び浮動小数点数のいずれであっても利用できます。

なお '%' の代わりに MOD を使っても同じ結果となります。

select 5 MOD 2, -7 MOD 3, 134.63 MOD 3, 5.24 MOD 1.7;

剰余(2)

カラム名を指定した場合には、カラムに格納されている値に対して計算が行われます。下記では test1 テーブルにある num1 カラムの値を num2 カラムに格納されている値で割った余りを取得しています。

select num1, num2, num1 % num2, num1 MOD num2 from test1;

剰余(3)

-- --

MySQL で利用可能な算術演算子の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。