PREPARATION
受験対策

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

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

例題

3.119

PostgreSQLで使用できる演算子について、適切なものを1つ選びなさい。

  1. 割り算で余りを切り捨てて整数の商を求めるには // を使用できる。例えば 5 // 3 は 1 となる。
  2. 割り算で余りを求めるには % を使用できる。例えば 5 % 3 は 2 となる。

  3. べき乗の計算には ** を使用できる。例えば、5 ** 3 は 125 となる。
  4. 論理和を求めるには || を使用できる。例えば true || false は true となる。
  5. 文字列を連結するには + を使用できる。例えば 'abc' + 'def' は 'abcdef' となる。

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

解答と解説

各種演算で使用できる演算子はSQLを含め多くのプログラミング言語で共通のものが多いですが、言語によって使えないもの、異なる目的に使っているものがありますし、SQLでもRDBMSの種類によっては使えないもの、異なる目的に使っているものがあるので注意が必要です。
割り算はほとんどの言語で / を使います。SQL を含め多くの言語では、被除数と除数の両方が整数なら商も整数、少なくとも一方が実数なら商も実数になります。// は Python 3.x で導入された割り算の演算子で、余りを切り捨てて整数の商を求めるもの(Python 3.x では整数同士の割り算でも商が実数になる)ですが、PostgreSQL では使用できません。
割り算の余りを求めるには多くの言語で % を使用できます。標準SQLには % 演算子は定義されておらず、代わりに MOD 関数を使うことになっていますが、PostgreSQL をはじめとしていくつかのデータベースで % でも余りを求めることができます。
べき乗の計算は ** 演算子あるいは、^ 演算子を使用する言語が多いです。SQL では POW または POWER 関数を使用するのが一般的ですが、PostgreSQL は POW、POWER の他に、^ 演算子でもべき乗を求めることができます。** 演算子は使用できません。
論理和は || を使う言語が多いですが、SQL では OR というキーワードが論理和の演算子として使われます。|| は文字列連結に使用されます。
文字列の連結には + を使う言語が多いですが、SQL では || を使います。+ はあくまでも足し算のための演算子なので、'abc' + 'def' のような式はエラーになります。蛇足ながら、'1' + '2' もエラーになりますが、'1' + 2 や 1 + '2' であれば 3 になります。

したがって正解はBです。

データベースの技術者といっても、SQL だけ知っていれば良いわけではなく、例えば Web 系のシステムであれば、PHP、Python、JavaScript などといった言語と組み合わせて使うことが多いでしょう。同じ演算なのに使う演算子や関数が違ったり、同じ演算子を違う目的に使ったり、という例がいくつかありますので、混乱しないように注意しましょう。
 

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

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

企業の基幹システムや業務システム、AIなどの
新領域での「PostgreSQL」の採用が拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定です

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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