Shoeisha Technology Media

資格Zine(しかくジン)

記事種別から探す

単一行関数の使用による出力のカスタマイズ: 文字列関数・日付関数・数値関数の問題を制覇する

  • LINEで送る
  • このエントリーをはてなブックマークに追加
林 優子[著]
2016/03/04 14:00

新入社員研修で講師をしていると、「Oracle独自のものが多いから」とか「覚えればいいことだから」という理由で、関数について説明する時間を(コース企画運営者から)省略させられることがよくあります。しかし、同じく新入社員研修でも、「資格取得を目的に」となったとたん、「時間を設けてほしい」と(コース企画運営者から)要望されます。そうです、はっきり言います。関数は、試験での出題率が高いのです。今回は出題範囲の関数のうち、行ごとに計算などを行って結果を返す「単一行関数」に分類される「文字列関数」「日付関数」「数値関数」を取り上げます。

その関数で何ができるかを把握しておこう

関数は出題率が高いと冒頭の要約文でお教えしましたが、それは「関数」カテゴリ以外だけでなく、「副問合せ」や「結合」といった他のカテゴリの問題でも、選択肢の中で関数が使われていることが多い、という事実も含んでいます。副問合せは理解できていたのに、選択肢内の関数が分からなかったり取り違えたりして失点するなんて場合もあります。そんな悔しい思いを皆さんがしないために、本連載では関数を説明していきます。

まずは小手調べの例題から。

問1

Oracle Databaseに組み込まれているSQL関数を使用して、実行できるものはどれですか?

  • a. 文字列の先頭、末尾または途中の文字を除去する
  • b. 指定した位置から指定した文字数分の文字を、指定した文字列に置き換える
  • c. 指定した文字列の位置を返す
  • d. 3つ以上の列または式を組み合わせて、出力で1つの列にする
  • e. 指定した位置から末尾までの文字数を返す
  • f. 先頭英字を英大文字に変換する

正解は、選択肢cfです。

この例題の選択肢は、いずれも文字列関数を想定しています。12c SQL基礎試験で出題される主な文字列関数は表1のとおりです。

表1:出題される主な文字列関数
関数 説明
CONCAT(文字列1,文字列2) 2つの列または式を組み合わせて、出力で1つの列にする
INITCAP(対象文字列) 先頭英字を英大文字に変換する
LOWER(対象文字列) 英大文字を英小文字に変換する
UPPER(対象文字列) 英小文字を英大文字に変換する
SUBSTR(対象文字列, 検索開始位置, 抜き出す文字数) 指定した位置から指定した文字数分の文字を返す
INSTR(対象文字列, 検索文字列, 検索開始位置, 出現順番) 指定した文字列の位置を返す
TRIM([LEADING|TRAILING|BOTH], 指定文字, 対象文字列) 文字列の先頭、末尾の文字を除去する
REPLACE(対象文字列, 検索文字列, 置換文字列) テキスト内の文字列を指定した文字列に置き換える
LENGTH(対象文字列) 文字数を返す
LPAD(対象文字列, 埋め込み後桁数, 埋め込み文字) 指定した文字を左に埋めて、指定した桁数にして返す
RPAD(対象文字列, 埋め込み後桁数, 埋め込み文字) 指定した文字を右に埋めて、指定した桁数にして返す

選択肢aは、TRIM関数の説明です。TRIM関数は文字列の先頭、末尾(あるいはその両方)の文字を除去しますが、途中の文字を除去することはできません。

選択肢bは、REPLACE関数の説明です。REPLACE関数は文字列を指定した文字列に置き換えることはできますが、指定した位置から指定した文字数分を置き換えることはできません。

選択肢cが正解です。選択肢cはINSTR関数の説明です。

選択肢dは、CONCAT関数の説明です。CONCAT関数は、3つ以上の文字列を組み合わせることはできません。連結演算子「||」を使えば、3つ以上を組み合わせることができますが、「||」は演算子であって、関数ではありません。

選択肢eは、LENGTH関数の説明です。LENGTH関数は、文字数を数え始める位置を指定することはできません。

選択肢fは、INITCAP関数の説明です。INITCAP関数は先頭だけでなく、空白や記号(マイナスやピリオドなど)の直後の英文字も英大文字に変換されます。この点は要確認です。

なお、INSTR関数は、SUBSTR関数と混ぜて覚えてしまう人が多いようです。正解できた人も注意してください。

では次ページから、実践問題に移りましょう!

SQL関数を覚えておくことは実務に役立つの?

覚えておいて損はありませんが、丸覚えしておく必要はないと思います。必要になったときに調べればよいからです。

ただし、「処理をSQLに頼るべきか否か」の判断を求められるケースでは、「SQLのほうが処理が簡単か」が1つの基準になるでしょう。これを見極めるためには、SQLで提供されている関数で何ができるかを把握しておく必要があります。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 林 優子(ハヤシ ユウコ)

    日本オラクル株式会社の教育ビジネスのスタートアップを全面的に支援し、バージョン5の頃からOracleに携わるベテラン講師として知る人も多い。Oracle認定講師を表彰するExcellent Instructorを連続受賞。1ランク上のITスペシャリスト育成を目標に、データベース分野にとどまらず「プレゼンテーション」、「ロジカルシンキング」などのトレーニングも手がけている。著書に『オラクルマスター教科書』シリーズ(翔泳社)、『プロとしてのデータモデリング入門』(SBクリエイティブ)など。その他、雑誌執筆、著書・メディア出演も多数。

バックナンバー

連載:めざせオラクルマスターホルダー! Oracle DB 12c SQL基礎 弱点克服スクール

もっと読む

この記事もオススメ

All contents copyright © 2015-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.0