無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

9.3. 算術関数と演算子

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-10 に示す、 bit bit varying ビット文字列型に対しても使用することができます。

表9-3 に使用可能な算術関数を示します。 この表内の dp は、 double precision を意味します。これら関数の多くは、異なる引数型を持つ複数の形で提供されています。特別な場合を除き、ある任意形式の関数はその引数と同じデータ型を返します。 double precision データに対する関数のほとんどはホストシステムのCライブラリの上層に実装されています。このため、境界近くの場合の精度と振舞いはホストシステムに依存して変わります。

表 9-3. 算術関数

関数 戻り値型 説明 結果
abs( x ) (入力と同じ) 絶対値 abs(-17.4) 17.4
cbrt( dp ) dp 立方根 cbrt(27.0) 3
ceil( dp or numeric ) (入力型と同一) 引数より小さくない最小の整数 ceil(-42.8) -42
ceiling( dp or numeric ) (入力型と同一) 引数より小さくない最小の整数( ceil の別名) ceiling(-95.3) -95
degrees( dp ) dp ラジアンに対応する度 degrees(0.5) 28.6478897565412
div( y numeric , x numeric ) numeric y / x の整数商 div(9,4) 2
exp( dp or numeric ) (入力型と同一) 指数 exp(1.0) 2.71828182845905
floor( dp or numeric ) (入力型と同一) 引数より大きくない最大の整数 floor(-42.8) -43
ln( dp or numeric ) (入力型と同一) 自然対数 ln(2.0) 0.693147180559945
log( dp or numeric ) (入力型と同一) 10を底とした対数(常用対数) log(100.0) 2
log( b numeric , x numeric ) numeric b を底とした対数 log(2.0, 64.0) 6.0000000000
mod( y , x ) (引数の型と同一) y / x の剰余 mod(9,4) 1
pi() dp "円周率(π)" 定数 pi() 3.14159265358979
power( a dp , b dp ) dp a b power(9.0, 3.0) 729
power( a numeric , b numeric ) numeric a b power(9.0, 3.0) 729
radians( dp ) dp 度に対応するラジアン radians(45.0) 0.785398163397448
random() dp 0.0 <= x < 1.0の範囲の乱数値 random()  
round( dp or numeric ) (入力型と同一) 四捨五入 round(42.4) 42
round( v numeric , s int ) numeric 小数点 s の位まで四捨五入して切捨て round(42.4382, 2) 42.44
setseed( dp ) void 今後の random() 呼び出しで使用されるシード(種)の設定(-1.0から1.0までの境界を含む値) setseed(0.54823)  
sign( dp or numeric ) (入力型と同一) 引数の符号(-1、0、+1) sign(-8.4) -1
sqrt( dp or numeric ) (入力型と同一) 平方根 sqrt(2.0) 1.4142135623731
trunc( dp or numeric ) (入力型と同一) 切り捨て trunc(42.8) 42
trunc( v numeric , s int ) numeric s の桁で切り捨て trunc(42.4382, 2) 42.43
width_bucket( op numeric , b1 numeric , b2 numeric , count int ) int operand が割り当てられる、 b1 から b2 までのバケット数 count の等深度ヒストグラムのバケットを返す width_bucket(5.35, 0.024, 10.06, 5) 3
width_bucket( op dp , b1 dp , b2 dp , count int ) int operand が割り当てられる、 b1 から b2 までのバケット数 count の等深度ヒストグラムのバケットを返す width_bucket(5.35, 0.024, 10.06, 5) 3

最後に、使用可能な三角関数を 表9-4 に示します。全ての三角関数は double precision データ型の引数と戻り値を取ります。三角関数の引数はラジアンで表されます。逆関数の返り値はラジアンで表されます。上記の radians () degrees () といった単位変換関数を参照して下さい。

表 9-4. 三角関数

関数 説明
acos( x ) 逆余弦関数
asin( x ) 逆正弦関数
atan( x ) 逆正接関数
atan2( y , x ) y / x の逆正接関数
cos( x ) 余弦関数
cot( x ) 余接関数
sin( x ) 正弦関数
tan( x ) 正接関数

powered by SEO.CUG.NET