今回は、Silverの「S3 開発/SQL - S3.2 組み込み関数(演算子)」からの出題です。
割り算で余りを求めるには % を使用できる。例えば 5 % 3 は 2 となる。
※この例題は実際の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事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.