ゼロから始めるORACLE MASTER Bronze Oracle Database 12c対策生活【後編】（12c SQL基礎編）

#はじめに
　先月（2020年10月）、ORACLE MASTER Bronze Oracle Database 12cという資格に合格（認定）しました。が、合格するまでの道のりが中々に鬼畜極まりなかったので、今回その内容を書き起こそうと思い記事を作成しました。ORACLE Databaseに限らず、「これからDatabaseを勉強しよう！！」という方向けに作成しておりますのでご覧ください。

#ORACLE MASTER Bronze Oracle Database 12cとは
　ORACLE MASTER Bronze Oracle Database 12cとは、Oracle Enterprise Managerなどを活用し、データベース管理者として必須となる管理者業務を行うための知識があることを証明する認定資格です。要は<b>「ORACLE Databaseが分かるよ！！」</b>と客観的に証明する認定資格の事です。
　ORACLE MASTER Bronze Oracle Database 12cを認定するには、以下の2つの試験を両方とも合格する必要があります。
<ul>
<li>Bronze DBA12c  (1Z0-065-JPN) 試験
https://education.oracle.com/ja/bronze-dba-12c-available-only-in-japan/pexam_1Z0-065</li>
<li>12c SQL基礎(1Z0-061-JPN) 
https://education.oracle.com/ja/oracle-database-12c-sql-fundamentals-retiring-april-30-2018/pexam_1Z0-061</li>
</ul>
 前者はORACLE Databaseの「製品・機能・役割」といった性質を理解する試験で、後者はORACLE Databaseの「SQL文（正確にはORACLE Database独自のSQL文）」の性質を理解する試験です。今回は後者の12c SQL基礎(1Z0-061-JPN)試験に関してお話をしていきたいと思います。
<br>
前編はこちらから：
https://qiita.com/syuki-read/items/aef3d4ebced51ee7bf6b

#12c SQL基礎(1Z0-061-JPN)

###試験内容
 ORACLE Database Bronze 12c SQL基礎(1Z0-061-JPN)は前述した通り、ORACLE Databaseの「製品・機能・役割」といった性質を理解する試験です。具体的には

<ul>
<li>RDB（リレーショナルデータベース）の概要</li>
<li>SELECT文によるデータの取得</li>
<li>データ取得とソート</li>
<li>単一行関数による出力</li>
<li>変数関数と条件式の活用</li>
<li>グループ関数による出力</li>
<li>結合における複数の表の表示</li>
<li>副問い合わせの出力</li>
<li>集合演算子の活用</li>
<li>DML文における表の管理</li>
<li>DDL文の概要</li>
</ul>

など多岐な知識を求められます。

###試験概要
また、試験概要も記載すると下記のような構成となっております。

<ul>
<li>試験時間120分</li>
<li>問題数75問</li>
<li>合格ライン65％以上</li>
<li>問題形式：選択式</li>
</ul>


#対策方法
ここからは12c SQL基礎の対策方法に関して記載いたします。

###1.Ping-t
まずは、全体像を掴むためIT学習用のサイトである「Ping-t」を活用し対策の方を行っていきました。まず12c SQL基礎の各分野ごとの項目を9割以上正解できるようにし、全体を網羅し、その後模擬試験で総合演習を行いこちらも8割以上の正解率を出すようにし、何度も何度も繰り返し対策を行いました。しかし、Ping-tの問題集は本番試験の問題より簡単な傾向があるため、これでは不十分と感じPing-tに加え、別の対策を行っていきました。（試験生活が終わった今でも、Ping-tの問題集のみの対策は実試験をかなり乖離があると個人的に感じています）

Ping-tのサイトのURL
https://ping-t.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/6bdc6d5e-cc20-8a75-de4a-934ce9fe49a1.png)

###2.黒本
Ping-tの一通りの対策が完了後、私は問題集の対策にシフトしていきました。取り扱った問題集で、私は通称『黒本』と呼ばれる「オラクルマスター教科書 Bronze Oracle Database 12c SQL基礎」を活用しました。12c SQL基礎のかなり細かい内容まで網羅している良書です。現に、Ping-tではカバーしきれなかった問題は勿論の事、Oracle Database特有の「重箱の隅をつつくような問題」まで幅広く対応がなされておりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/1838aef1-67e1-a1fb-f9dc-201e773336a1.png)

###3.アウトプット
そして、最後の段階ではそれらの学んだ知識を実際にアウトプットを行っていました。具体的には、Windows上の仮想環境化で、実際にOracle Database 12cをインストールし[※1]、学習環境を構築し、そしてサンプルデータを活用して[※2]、実際にSQL文をゴリゴリと書いていきました。学習の全体の7割ここに投下していると感じています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/21e24899-0e82-0670-3a5b-f50a0653fd19.png)

※1：Oracle DatabaseはOTNライセンスという、商業的に利用しない限り永久に無償で使えるライセンスが存在します。

参考URL：https://www.projectgroup.info/documents/Oracle/ORA-000006.html

※2：サンプルデータはping-tが提供しているデータを活用しました
参考URL：https://ping-t.com/

#試験当日
試験対策は平均毎日1～2時間の対策を、約2ヶ月ぐらいかけて対策の方を行ってきました。（Ping-t・黒本に1ヶ月、アウトプット学習に1ヶ月）そんな万全を期した準備した試験当日、かなりの意地の悪い問題に圧倒されかけました。というのも、このOracle Database全般を通して言える事なんですが、ここが出題している問題は「幅広い基礎知識を問う問題」ではなく、「幅広い知識を前提に細かいシチュエーションを問う問題」がほとんどで、重箱の隅をつつくようないやらしい問題が本当に多いです。特に、<b>12c SQL基礎の問題はとにかく長く、SQL文をゴリゴリ書いた自分でさえ、試験時間120分が相当短く感じられる程キツイ試験でした。</b>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/3f36d547-1aff-ced6-8595-fe6c3164bbde.png)



#結果は
試験結果は65％とギリギリの合格でした（合格ライン65％以上）
ジャスト過ぎて、試験終了後しばらく立ち上がれませんでした😣


#終わりに
試験を通して感じた事は、この12c SQL基礎はとにかく問題1問1問が非常に重いです。なので、12c SQL基礎はとにかくSQL文を書きまくって、SQL文の構造理解における直感力を体感的に向上させていく事を強くお勧めします。参考書のみの学習は相当キツイ試験です！！
ちなみに試験終了後、旧課程のBronze SQL 基礎Iを軽く解いてみたのですが、難易度が冗談抜きで天と地ほどの差があります。下記にサンプル問題が掲載してあるURLをはっておくので、新過程の12c SQL基礎がいかに鬼畜か是非体感してみて下さい。（ちなみに、旧課程のBronze SQL 基礎Iは既に廃止となり、現在は新過程の12c SQL基礎しか試験しかありません笑）

12c SQL基礎のサンプル問題：
https://www.atmarkit.co.jp/ait/articles/1403/31/news011_2.html

Bronze SQL 基礎Iのサンプル問題：
https://www.atmarkit.co.jp/ait/articles/0505/12/news124.html