OceanBaseデータベースは一般的な算術演算子をサポートしています。
算術演算子の概要
OceanBaseデータベースの現行バージョンでサポートされている算術演算子の詳細は、以下の表に示されています。
| 演算子 | 演算子の種類 | 意味 |
|---|---|---|
+ |
一元/二項 | 一元は正の数を表し、二項は加法を表します。 |
- |
一元/二項 | 一元は負の数を表し、二項は減法を表します。 |
* |
二項 | 乗法。 |
/ |
二項 | 通常の除法。 |
DIV |
二項 | 整数除法で、商を返します。 |
MODまたは% |
二項 | 整数除法で、余りを返します。 N % MまたはN MOD Mは、NをMで割ったときの余りを返すことを表します。 |
説明
演算規則
整数除算の演算規則について、以下のように説明します:
商は正負に関係なく、統一的に0に丸められます。
余りの正負は被除数と同じです。
例:
obclient> SELECT (-7) DIV (3.6), (-7) MOD (3.6);
+----------------+----------------+
| (-7) DIV (3.6) | (-7) MOD (3.6) |
+----------------+----------------+
| -1 | -3.4 |
+----------------+----------------+
1 row in set
obclient> SELECT (-7) DIV (-3.4), (-7) % (-3.4);
+-----------------+---------------+
| (-7) DIV (-3.4) | (-7) % (-3.4) |
+-----------------+---------------+
| 2 | -0.2 |
+-----------------+---------------+
1 row in set
演算結果
算術演算の結果は、以下のルールに基づいて決定されます:
-、+、*の場合、両方の演算子が整数である場合、結果はBIGINT(64ビット) の精度で計算されます。両方の演算子が整数であり、そのうち一方が符号なしである場合、結果は符号なし整数となります。減算の場合、
NOUnsigned_SUBTRACTIONSQLモードが有効になっている場合、どちらか一方の演算子が符号なしであっても、結果は符号付きとなります。+、-、/、*、%の演算子が実数または文字列値である場合、結果の精度は最も高い精度を持つ演算子の精度となります。/を使用した除算では、2つの正確な値の演算子を使用する場合、結果の小数点以下の桁数は最初の演算子の小数点以下の桁数にdiv_precision_incrementシステム変数の値(デフォルトは4)を加えたものになります。例えば、式 5.15/0.013 の結果は小数点以下6桁 (396.153846) となります。