PREPARATION
受験対策

Silverの例題解説
「S3.2 組み込み関数(算術演算子)」

今回は、Silverの「S3 開発/SQL - S3.2 組み込み関数(算術演算子)」からの出題です。

例題

3.26

PostgreSQLの算術演算子の利用について、誤った記述を1つ選びなさい。

  1. SELECT 5/2; の結果は 2 だが、SELECT 5/2.0; の結果は 2.5 となる。
  2. SELECT 5%2; の結果は 1 である。

  3. SELECT 5/NULL; を実行すると、0で除算のエラーとなる。

  4. SELECT 5/0; を実行すると、0で除算のエラーとなるが、SELECT NULL/0; なら結果は NULL となる。

  5. SELECT 5^2; の結果は 25 である。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2013年2月27日

解答と解説

四則演算の +-*/ 演算子はどのRDBMSでも実装されていますが、それ以外の演算子についてはRDBMSの種類によって使われ方が違う場合があるので注意が必要です。
PostgreSQLでは四則演算以外にも多くの算術演算子が実装されており、例えば剰余(割り算の余り)を求める %、累乗(XのY乗)を求める ^ といった、C言語などで見慣れた演算子を使うことができます。
通常の割り算は / 演算子を使いますが、整数同士の割り算では、結果も整数(小数点以下は切り捨て)になります。どちらか一方が実数の場合には、結果も実数(切り捨てない)になります。つまり、5/2 は結果の小数部が切り捨てられて 2 になりますが、5/2.0 (あるいは 5.0/2)の場合は 2.5 になります。
剰余を求める場合、MOD関数を使わなければならないRDBMSもありますが、PostgreSQLでは、MOD関数、%演算子のいずれでも利用することができます。5%2は割り算の余りを求めますから、結果は 1 になります。
2項演算の一方の項がNULLの場合、その結果は無条件にNULLになります。NULLと0はまったく異なるものなので注意してください。NULLで割り算すると結果はNULLになります。0で割り算すると、通常はエラーになりますが、NULL/0 の場合は、除算のエラーを起こさずにNULLが返されます。
累乗を求める場合、POW関数、あるいはPOWER関数を使わなければならないRDBMSもありますが、PostgreSQLではこれらに加えて ^ 演算子を使うことができます。5^2 は5の2乗、つまり 5*5 なので結果は25 になります。

誤っているものを選ぶ問題ですから、正解は C です。

 

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

企業の基幹システムや業務システムでの
OSS-DBの採用がますます拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定資格になります

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

LPI-Japan
Platinum Sponsors