SQLドリル300 - Silver SQL対応 > 出題範囲と対策ガイド

ORACLE MASTER Silver SQLの出題範囲と頻出テーマ・対策ガイド(1Z0-071)

ORACLE MASTER Silver SQL(試験番号1Z0-071)は、Oracle DatabaseのSQLを対象とした試験です。データを行と列からなる2次元の表の集合として扱い、表同士をポインタではなく共通の列の「値」で関連付ける——このリレーショナル・データベースの考え方を土台に、SELECT文の基本から関数・結合・副問合せ、DML・DDL、権限管理までが出題範囲に含まれます。この記事では、出題範囲の15単元それぞれの内容と、学習者がつまずきやすい頻出テーマを整理します。

試験形式

試験名ORACLE MASTER Silver SQL
試験番号1Z0-071
試験の形式78問・120分・合格ライン63%

アプリ「SQLドリル300 - Silver SQL対応」の模擬試験も、この形式(78問・120分・合格ライン63%)で作られています。

出題範囲: 全15単元の内容

1Z0-071の出題範囲は15の分類に分かれています。各単元の内容と、アプリの模擬試験78問における単元別の出題数(内訳)を併記します。※「模試n問」はアプリの模擬試験の内訳であり、実際の試験の単元別出題数を示すものではありません。

1. リレーショナル・データベースの概念模試3問

表・行・列とERDの対応、主キー・一意キー・外部キーの対比、NULLの意味、SQL文の分類(DML/DDL/DCL/トランザクション制御)。以降すべての単元の土台になる概念です。

2. SQL SELECT文を使用したデータの取得模試6問

SELECT句とFROM句の基本ルール、列別名と引用符の使い分け、連結演算子||、代替引用符演算子q''、DISTINCT、算術式とNULL、DUAL表。

3. データの制限とソート模試5問

WHERE句の比較演算子・BETWEEN・IN・LIKE、NULL判定のルール、論理演算子の優先順位(NOT>AND>OR)、ORDER BY、FETCH FIRSTによる行数制限、置換変数。

4. 単一行関数を使用した出力のカスタマイズ模試7問

文字関数(UPPER/SUBSTR/INSTR/LPAD/TRIMなど)、数値関数(ROUND/TRUNC/MOD)、日付の算術演算とMONTHS_BETWEEN・ADD_MONTHS・NEXT_DAY・LAST_DAYなどの日付関数。

5. 変換関数と条件式の使用模試5問

NVL/NVL2/NULLIF/COALESCE、暗黙的なデータ型変換の規則、TO_CHAR・TO_NUMBER・TO_DATEの書式モデル、CASE式とDECODEの対比。

6. グループ関数を使用した集計データのレポート模試6問

COUNT/SUM/AVG/MAX/MINとNULLの扱い、GROUP BYのルール、WHEREとHAVINGの違い(評価順)、グループ関数のネスト。エラー番号を対で覚える単元です。

7. 複数の表からのデータの表示(結合)模試7問

NATURAL JOIN・USING・ONの3構文と列修飾のルール、外部結合(LEFT/RIGHT/FULL)とOracle独自の(+)構文、自己結合・非等価結合、デカルト積。

8. 副問合せを使用した問合せの解決模試7問

単一行・複数行副問合せの使い分け、IN・ANY・ALLの向き、NOT INとNULLの関係、相関副問合せとEXISTS/NOT EXISTS、インライン・ビュー。

9. 集合演算子の使用模試4問

UNION/UNION ALL/INTERSECT/MINUSの使い分け、列数・データ型の一致条件、ORDER BYを書ける位置、集合演算でのNULLの扱い(WHERE句との違い)。

10. DML文を使用した表の管理模試6問

INSERT・UPDATE・DELETEの要点、COMMIT/ROLLBACK/SAVEPOINTと暗黙コミット、読み取り一貫性と行ロック、マルチテーブルINSERT、MERGE文。

11. 索引、シノニムおよびシーケンスの管理模試4問

索引の基本と制約による自動作成、関数ベース索引、プライベート/パブリック・シノニム、シーケンス(NEXTVAL/CURRVAL・欠番・CYCLE・ALTER SEQUENCE)。

12. DDLによる表とその関係の管理模試6問

CREATE TABLEとデータ型、DEFAULTとCTAS、ALTER TABLE(列の追加・変更・削除)、DELETE/TRUNCATE/DROPの違い、一時表・外部表、制約の定義と管理。

13. ビューの管理模試4問

ビューの仕組み(データは基礎表にある)、単純ビューと複合ビュー、ビュー経由DMLの可否、WITH CHECK OPTION / WITH READ ONLY、インラインビューとTop-N分析。

14. ユーザー・アクセスの制御模試4問

システム権限とオブジェクト権限、GRANT/REVOKE構文、WITH ADMIN OPTIONとWITH GRANT OPTIONの対比、REVOKEの連鎖、ロール、権限確認のディクショナリ・ビュー。

15. データ・ディクショナリ・ビューを使用したオブジェクトの管理/異なるタイム・ゾーンでのデータの管理模試4問

USER_/ALL_/DBA_接頭辞の使い分け、制約の確認(CONSTRAINT_TYPE)、COMMENT文、SYSDATE系とCURRENT_系のタイムゾーン対比、TIMESTAMP系3型、INTERVAL。

頻出・つまずきポイント8選

アプリの要点まとめから、混同しやすい・ひっかけとして狙われやすいテーマを、模擬試験での比重が大きい単元を中心に8つ選びました。

1. 「行を削除するのにDDL」— TRUNCATEとDELETE

DELETEはDMLで、COMMIT前ならROLLBACKで戻せ、WHERE句で行を選べます。TRUNCATEはDDLで、実行と同時に暗黙コミットされるためROLLBACKでは戻せません(全行削除のみ・表の定義は残る)。さらにDDLやDCLは実行時に暗黙コミットを発生させるため、直前の未コミットDMLも道連れで確定します——CREATE TABLEの後にROLLBACKしても、その前のUPDATEは戻りません。(単元1・10)

2. 算術演算のNULLは伝播、連結のNULLは無視

NULLを含む算術式(+ - * /)の結果は常にNULLで、NULL * 0 も0ではなくNULLです。一方、連結演算子||とCONCATはNULLを長さ0の文字列として扱うため、'Kato' || NULL は 'Kato' になり、結果はNULLになりません。「算術のNULLは伝播、連結のNULLは無視」という対比がそのまま問われます。(単元2・4)

3. ROUND/TRUNCの負の桁指定

負の桁指定は小数点の「左側」で丸めます。-2なら百の位で、ROUND(2567.89, -2)=2600、TRUNC(2567.89, -2)=2500です。丸めの判断に使うのは指定桁の1つ下の桁だけ。小数部の数字を見て切り上げと誤答させる出題が定番です。(単元4)

4. 結合の列修飾——「NATURAL/USINGは付けたらダメ、ONは付けないとダメ」

NATURAL JOINの結合列に表接頭辞を付けるとORA-25155、USING句で指定した列に付けるとORA-25154になります。逆に、ON句の結合で両表にある同名列は接頭辞を付けないとORA-00918です。結合列以外の列はどの構文でも接頭辞を付けて構いません。また、表別名を定義したら元の表名での修飾はできなくなります。(単元7)

5. NOT INとNULLの罠

副問合せの結果にNULLが1つでも含まれると、NOT INは必ず0行になります。エラーにはならず黙って0行になるのがいやらしいところです。INはNULLが含まれていても正常に動きます。対処は、副問合せにIS NOT NULLの条件を付けるか、NULLの影響を受けないNOT EXISTSに書き換えることです。(単元8)

6. ANYとALLの向き

>ANYは「最小値より大きい」、>ALLは「最大値より大きい」。ANYは「どれか1つ満たせばよい(ゆるい)」、ALLは「すべて満たす(きびしい)」と整理すると迷いません。SOMEはANYの同義語です。>ANYと>ALLの取り違えを誘う出題が定番です。(単元8)

7. COUNTの使い分けとAVGの分母

COUNT(*)だけがNULLの行も数え、それ以外のグループ関数はすべてNULLを無視します。COUNT(列)は非NULL件数、COUNT(DISTINCT 列)はNULLを除く異なる値の数です。AVG(列)の分母は非NULL件数なので、列にNULLがあるとSUM(列)/COUNT(*)とは一致しません。NULLを0扱いで平均したいときはAVG(NVL(列, 0))と、NVLをAVGの内側に書きます。(単元6)

8. NVLとCOALESCEのエラー番号

数値列にNULL時の文字列を当てると、NVLは第1引数の型への暗黙変換を「試みて失敗」しORA-01722、COALESCEは引数間の型一致を「最初から要求」しORA-00932になります。「NVL=01722/COALESCE=00932」と対で覚え、正しくはNVL(TO_CHAR(列), '文字')と内側で型を揃えます。(単元5)

サンプル問題(アプリ収録問題から3問)

アプリに収録している第1単元「リレーショナル・データベースの概念」から、そのまま3問掲載します。

問題1

リレーショナル・データベースに関する説明として正しいものはどれですか。
解答を見る
正解: A
リレーショナル・モデルでは、データを行と列からなる2次元の表の集合として表し、表間の関連はポインタなどの物理的リンクではなく共通の列の「値」で表現する。Bはネットワーク型、Cは階層型データベースの説明。1つの表の各行はすべて同じ列構成を持つ(D誤り)。「関連付けは値で行う」がリレーショナル・モデルの核心。

問題2

主キー(PRIMARY KEY)制約に関する説明として正しいものはどれですか。
解答を見る
正解: B
主キーは表の各行を一意に識別するためのもので、一意性とNOT NULLの両方が強制される(NULLの挿入はORA-01400、重複はORA-00001)。1つの表に定義できる主キーは1つだけだが(C誤り)、複数列の組合せ(複合主キー)で構成することはできる(D誤り)。「NULLを許可するのは一意キー」との対比で覚える。

問題3

次の文を順に実行した。 CREATE TABLE tmp_items (item_id NUMBER); INSERT INTO tmp_items VALUES (1); COMMIT; TRUNCATE TABLE tmp_items; ROLLBACK; 最後のROLLBACKを実行した後、TMP_ITEMS表の行数は何行ですか。
解答を見る
正解: B
TRUNCATEはDDLなので実行と同時に暗黙コミットされ、後からROLLBACKしても削除された行は戻らない。DELETEであればDMLなので、COMMIT前ならROLLBACKで行を戻せる。この違いが最重要ポイント。また、TRUNCATEが削除するのは行(データ)だけで、表の定義は残る(C誤り)。定義ごと削除するのはDROP TABLE。

学習の進め方(アプリの機能に沿って)

アプリ「SQLドリル300 - Silver SQL対応」の機能を使った進め方の一例です。

1. 単元別に解く — 全15単元×20問を、単元1から順に解きます。各単元には要点まとめが付いているので、解く前後に読んで知識を整理できます。

2. 間違いのみ出題で潰す — 間違えた問題だけを絞り込んで解き直せます。正解できるまで繰り返すことで弱点を減らします。

3. 番号指定で復習する — 気になる問題は番号を指定して直接開けます。解説を読み直したい問題のピンポイント復習に使えます。

4. 模擬試験で仕上げる — 本試験と同じ形式(78問・120分・合格ライン63%)の模擬試験で総仕上げ。単元別の弱点分析で、点が取れていない単元に戻って復習します。

まずは無料で10問体験

第1単元「リレーショナル・データベースの概念」の20問を、登録不要・無料でブラウザから解けます。アプリ版は全15単元×20問=300問(完全オリジナル・すべて実際のOracle Database上でSQLを実行して検証済み)+模擬試験+要点まとめ+弱点分析を収録。完全オフライン・登録不要・広告なし・買い切り¥1,000です。

無料で10問体験する(Web版) App Storeで見る