Oracle University 講師が ORACLE MASTER 取得を目指している方に向けて試験トピックを解説するブログ連載講座。「ORACLE MASTER Silver SQL 2019」資格取得に向けた試験トピックについて解説します。

————————————————-

今回はORACLE MASTER Silver SQLの試験トピック「SQL SELECT文を使用したデータの取得 – 列別名の使用 -」に関連する問題をご紹介いたします。ORACLE MASTER Silver SQL(Exam Number: 1Z0-071-JPN)の詳細につきましては以下URLをご参考ください。

Oracle Database SQL Exam Number: 1Z0-071

URL: https://education.oracle.com/ja/oracle-database-sql/pexam_1Z0-071

————————————————-

SELECT文の構文問題として「列別名」、「DUAL表の使用」、「連結演算子、代替引用符演算子の使用」を取り扱ってきていますが、今回は「連結演算子、代替引用符演算子の使用」を学習していきます。

それでは張り切って問題を見ていきましょう。

(解説)

では解説していきます。選択肢のSQL文には何やら記号が沢山ありますね。「なんか記号だらけでよく分からないから・・これでいいや」的な選択をしては絶対にいけませんよ。今回の問題に限らずSQL文が選択肢で出てくる場合は「見るべきポイントは何か?」というを判断して構文的に間違っているものを見つけてください。今回の問題は「連結演算子」と「代替引用符演算子」の2つがポイントになります。

まずは連結演算子の使い方から確認していきましょう。

早速、実機にて動作確認してみます。EMP_INFO表のFIRST_NAME列とLAST_NAME列、そして「-san」という文字列を繋げて1つの列として表示してみます。※実機操作用のサンプル構文、データは本記事の最後に載せておきます。

問題の選択肢にあった(+)を使った操作も載せておきました。エラーになっていますね。つまり連結演算子で(+)というような使い方はできないということです。この内容だけで選択肢の1と6は除外できます。

もう少し確認しておきましょう。文字列として「-san」というのがありますが、これをリテラル文字列と言います。リテラル文字列は必ず一重引用符で囲む必要がありますので合わせて押さえておきましょう。第8回で学習した列別名の指定方法と混乱しないように。

さて、次のポイントは代替引用符演算子になります。

先ほど学習したリテラル文字列はSQL文の中で使われることが多いですが、表示したい文字列自体に一重引用符が含まれる場合はどのように表現すればいいでしょうか?リテラル文字列は必ず一重引用符で囲むというルールがあるので「この一重引用符はルールのではなく文字として認識してくれ!」と指定する必要があります。

その際に使用するのが代替引用符演算子というわけですね。

こちらも実機操作にて動作確認しましょう。

今回実行した例は ( ) を引用符デリミタとして使用しました。これにより ( ) で囲まれた文字列は「リテラル文字列として扱って!」と認識することが可能になるわけです。

それでは学習した内容を使って正しい選択肢を選んでいきましょう。

選択肢1は連結演算子も代替引用符演算子も使い方が間違っていますね。誤りです。

選択肢2は引用符(q)の後に二重引用符で囲っているため誤りです。

選択肢3も代替引用符演算子の使い方が間違っているので誤りです。

選択肢4は正しい内容ですね。引用符デリミタとして ( ) を使っています。

選択肢5も正しい内容です。選択肢4との違いは引用符デリミタに [ ] を使っている点ですが、構文的に問題ありません。

選択肢6は代替引用符演算子の使い方はあってますが連結演算子の使い方が間違っています。誤りです。

正解は 4と5になります。

今回の問題の選択肢が実行できるように定義のサンプルと、実行した結果も参考に乗せておきます。

— sample テーブル作成 —
drop table emp_info;
create table emp_info(
        employee_id       number(6)        primary key,
        first_name          varchar2(20),
        last_name          varchar2(25)     not null,
        email_address    varchar2(50)
);

— sample データ挿入 —
insert into emp_info values(100, ‘Steven’, ‘King’, ‘steven.king@xxxxx.com’);
insert into emp_info values(101, ‘Neena’, ‘Kochhar’, ‘neena.kochhar@xxxxx.com’);
insert into emp_info values(120, ‘Matthew’, ‘Weiss’, ‘matthew.weiss@xxxxx.com’);
insert into emp_info values(126, ‘Irene’, ‘Mikkilineni’, ‘irene.mikkilineni@xxxxx.com’);
insert into emp_info values(127, ‘James’, ‘Landry’, ‘james.landry@xxxxx.com’);
commit;

ORACLE MASTER Silver SQLには選択肢にSQL文そのものの正否を問う問題が出てきます。その場合、SQL文の中に見るべきポイントがあるので、各選択肢の違いに着目して「この問題はこの部分を聞いてきてるな」と切り分け作業をして臨むといいでしょう。試験問題数が多いので、途中で疲れてしまってSQL文が頭に入ってこない!?というような場合は一旦深呼吸して再度SQL文を眺めてみましょう。複雑なSQL文であっても適当に選択肢を選ぶということは絶対にしないように!

3回にわたりSELECT文の構文に関する内容を連続してお伝えしてきましたが、点数が稼げる項目だと思います。合格に近づくためにしっかり学習しておきましょう。

それではまた次回でお会いしましょう。

————————————————-

ORACLE MASTER Silver SQL 2019 のご紹介

ORACLE MASTER Silver SQL 2019 試験記事トピック一覧

————————————————-

その他の ORACLE MASTER 試験トピック解説講座シリーズ:

【Oracle University講師によるORACLE MASTER Gold DBA 2019 試験トピック解説講座】トピック一覧

————————————————-