PostgreSQLの数多くの型に対する算術演算子が用意されています。 標準算術表現法が存在しない型(例えば、日付/時刻データ型)については、後続する節で実際の動作を説明します。
表9.2「算術演算子」は使用可能な算術演算子を示しています。
表9.2 算術演算子
演算子名 | 説明 | 例 | 結果 |
---|---|---|---|
+ | 和 | 2 + 3 | 5 |
- | 差 | 2 - 3 | -1 |
* | 積 | 2 * 3 | 6 |
/ | 商(整数の割り算では余りを切り捨て) | 4 / 2 | 2 |
% | 剰余(余り) | 5 % 4 | 1 |
^ | 累乗(左から右に適用) | 2.0 ^ 3.0 | 8 |
|/ | 平方根 | |/ 25.0 | 5 |
||/ | 立方根 | ||/ 27.0 | 3 |
! | 階乗 | 5 ! | 120 |
!! | 階乗(前置演算子) | !! 5 | 120 |
@ | 絶対値 | @ -5.0 | 5 |
& | ビットごとのAND | 91 & 15 | 11 |
| | ビットごとのOR | 32 | 3 | 35 |
# | ビットごとのXOR | 17 # 5 | 20 |
~ | ビットごとのNOT | ~1 | -2 |
<< | ビットごとの左シフト | 1 << 4 | 16 |
>> | ビットごとの右シフト | 8 >> 2 | 2 |
ビット演算子は整数データ型のみに使用できます。一方他の演算子は全ての数値データ型に使用できます。
また、ビット演算子は表9.11「ビット文字列演算子」に示すように、bit
、bit varying
ビット文字列型に対しても使用することができます。
表9.3「算術関数」に使用可能な算術関数を示します。
この表内のdp
は、double precision
を意味します。
これら関数の多くは、異なる引数型を持つ複数の形で提供されています。
特に記述がある場合を除き、すべての形式の関数はその引数と同じデータ型を返します。
double precision
データに対する関数のほとんどはホストシステムのCライブラリの上層に実装されています。このため、精度と境界近くの場合の振舞いはホストシステムに依存して変わります。
表9.3 算術関数
表9.4「乱数関数」に乱数を生成する関数を示します。
表9.4 乱数関数
が返す値の特徴はシステムの実装に依存します。
暗号への利用は適していません。代わりにpgcryptoモジュールを参照してください。
random()
最後に、使用可能な三角関数を表9.5「三角関数」に示します。
全ての三角関数はdouble precision
データ型の引数と戻り値を取ります。
三角関数の引数はラジアンで表されます。
逆関数の返り値はラジアンで表されます。
上記の
とradians
()
といった単位変換関数を参照して下さい。
degrees
()
表9.5 三角関数