9.組み込み関数と演算子【OSS DB exam Silver】

OSSsilver

現在OSS-DB Silver Ver.2を勉強中のサイト主です。

OSS DB Silverを本で勉強していても図にしないとわからなかったり、表にしたほうが分かりやすいこともあります。そのため、自分が覚えにくいと思ったこと、混同しやすいことをまとめています。書いてあることは常識なことかもしれませんが私がわからなかったことをまとめています。

勉強法などは下記に記載しています。

OSS DB Silverを取得するためにやったこと

OSS DB exam Silverの勉強内容

  1. オープンソースデータベースの一般的特徴
  2. データベースの基礎知識
  3. インストール
  4. 標準付属ツール
  5. 設定ファイル
  6. バックアップとリストア
  7. 基本的な運用管理
  8. SQLとオブジェクト
  9. 組み込み関数と演算子⇦今日はこれ!
  10. トランザクション

組み込み関数と演算子

PostgreSQLの数多くの型に対する算術演算子が用意されています。今回は以前SQLを勉強していたのでそこまで戸惑うことはありませんでした。以下の内容を覚えておけば集計が可能です。

算術関数

関数名 説明
abs 絶対値
div y/xの整数商
mod y/xの剰余
sqrt 平方根
power ab
ceil 引数より小さくない最小の整数
floor 引数より大きくない最大の整数
round 四捨五入
trunc 切り捨て
log 10を底とした対数(常用対数)
pi “円周率(π)”定数
random 0.0 <= x < 1.0の範囲の乱数値

問題としては以下のような集計が出ます。

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

SELECT 5/2; の結果は 2 だが、SELECT 5/2.0; の結果は 2.5 となる。
SELECT 5%2; の結果は 1 である。
SELECT 5/NULL; を実行すると、0で除算のエラーとなる。
SELECT 5/0; を実行すると、0で除算のエラーとなるが、SELECT NULL/0; なら結果は NULL となる。
SELECT 5^2; の結果は 25 である。

Silverの例題解説「開発/SQL – 組み込み関数(算術演算子)」

文字列関数

関数名 説明
length()
char_length()
文字型の文字数
octet_length() 文字列中のバイト数
substring() POSIX正規表現に一致する副文字列を取り出す
upper() 文字列を大文字に変換
lower() 文字列を小文字に変換
repeat() 指定されたnumberの数だけstringを繰り返す
replace() stringに出現する全てのfrom部分文字列をto部分文字列に置換
lpad() 文字fill(デフォルトは空白文字)を文字列の前に追加して、stringlengthの長さにする。stringが既にlengthの長さを超えている場合は(右側が)切り捨てられる。
rpad() 文字fill(デフォルトはスペース)を文字列に追加して、stringlengthの長さにする。stringが既にlengthの長さを超えている場合は切り捨てられる
trim() characters(デフォルトでは空白)で指定された文字のみを含む最も長い文字列を、stringの先頭、末尾、そしてその両方から削除する
ltrim() stringの最初から、characters(デフォルトはスペース)で指定された文字だけを有する最長の文字列を削除
rtrim() stringの末尾から、characters(デフォルトはスペース)で指定された文字のみを有する最長の文字列を削除

所感

BigQueryでもともとデータ抽出をしていたので今回はそこまで難しくなかったです。すでにほかのところで勉強しているのであれば、BigQueryやほかのSQLと対応させながら覚えていくとよいかと思います。