算術演算子

広告

算術演算子は四則演算を行う為の演算子です。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> select 10 + 4, 12.8 + 7.92, 4.5 + 3.5, 7.2 + 4, 3.0 + 2.0;

p6-1

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

減算

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

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

p6-2

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

乗算

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

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

p6-3

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

除算

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

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

p6-4

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

p6-5

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

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

DIV

「DIV」は左辺の値を右辺の値を割ったものを返します。

mysql> select 6 DIV 2, 4 DIV 3, 5.4 DIV 3, 5.7 DIV 3, -5.49 DIV 3, -5.5 DIV 3;

p6-6

「/」との違いは結果として整数の値を返してくるという点です。

どのような計算方法をしているのかはっきりと分からないので推測なのですが、除算した結果の整数部分を取り出したりしているのではなく、まず左辺と右辺の値を整数に変換した後で除算を行い、その結果の整数部分だけを取得しているように思われます。

そして左辺と右辺の値を整数に変換する時には四捨五入のような計算が行われると推測しています。

いずれにしてもこの演算子の詳細については、はっきりととしたことが分かりましたら書き直します。

剰余

剰余を表す「%」は左辺の値を右辺の値を割ったものを返します。

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

p6-7

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

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

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

p6-8

( Written by Tatsuo Ikura )