算術演算子の使い方

広告
eyecatch

算術演算子は四則演算などの計算のほか、平方根や階乗などをおこなうために利用します。ここでは算術演算子の使い方について解説します。

算術演算子の種類と使い方

PostgreSQL で利用できる算術演算子は次の通りです。

+   和     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

上記の算術演算子はすべての数値データ型で使用することができます。

-- --

では実際に試してみます。次のようなテスト用のテーブルを作成しました。

create table test(
  num1 real,
  num2 real
);

算術演算子の種類と使い方(1)

次のようなデータをテーブルに追加しました。

insert into test values
  (15.4, 7.25),
  (-5.9, 9.0),
  (18.225, -7.3);

算術演算子の種類と使い方(2)

それでは SELECT コマンドを使って num1 カラムと num2 カラムに対して演算を行った結果を取得してみます。

select num1, num2, 
  num1 + num2 as "num1 + num2", 
  num1 * num2 as "num1 * num2", 
  num1 / num2 as "num1 / num2" 
  from test;

算術演算子の種類と使い方(3)

算術演算子を使ってカラムに格納されている値に対して演算した結果を取得しました。

ビット演算子の使い方

算術演算子には他にビット演算を行う演算子も用意されています。

&  ビットごとのAND      91 & 15  ->  11
|  ビットごとのOR       32 | 3   ->  35
#  ビットごとのXOR      17 # 5   ->  20
~  ビットごとのNOT      ~1       ->  -2
<<  ビットごとの左シフト  1 << 4  ->  16
>>  ビットごとの右シフト  8 >> 2  ->  2

ビット演算子は整数データ型またはビット文字列型で使用することができます。

ビット AND は演算子の左辺と右辺の同じ位置にあるビットを比較して、両方のビットが共に1の場合だけ 1 にします。

85 & 15

0000000001010101  = 85
0000000000001111  = 15
------------------------
0000000000000101  = 5

ビット OR は演算子の左辺と右辺の同じ位置にあるビットを比較して、どちらか一つでもビット 1 の場合に1にします。

85 | 15

0000000001010101  = 85
0000000000001111  = 15
------------------------
0000000001011111  = 95

ビット XOR は演算子の左辺と右辺の同じ位置にあるビットを比較して、どちらか一つがビット 1 の場合に 1 にします。両方とも 1 の場合や両方とも 0 の場合は 0 にします。

85 # 15

0000000001010101  = 85
0000000000001111  = 15
------------------------
0000000001011010  = 90

ビット NOT は演算子の右辺の値の各ビットを反転( 0 なら 1 に、 1 なら 0 にする)させます。

~85

0000000001010101  = 85
------------------------
1111111110101010  = -86

ビット左シフトは対象の値を指定した数だけ左へシフトします。

85 << 2

0000000001010101  = 85
------------------------
0000000101010100  = 340

ビット右シフトは対象の値を指定した数だけ右へシフトします。

85 >> 2

0000000001010101  = 85
------------------------
0000000000010101  = 21

では SELECT コマンドを使って簡単に試してみます。

select 85 & 15 as "85 & 15",
  85 | 15 as "85 | 15",
  85 # 15 as "85 # 15",
  ~85 as "~85",
  85 << 2 as "85 << 2",
  85 >> 2 as "85 >> 2";

ビット演算子の使い方(1)

ビット演算子を使って演算した結果を取得しました。

-- --

PostgreSQL で用意されている算術演算子の使い方について解説しました。

PostgreSQLの使い方の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。