【Oracle MASTER Silver SQL】問題集

皆さんこんにちわ!
今回は私がOracle MASTER Silver SQLの資格を取得する際にWEBで勉強したかったけどなかなかいいサイトがないなあと思いましたので、Webで勉強できるように問題と解答この記事にまとめてみました。※解説は含みません
※今回の参考はOracle MASTER Silver SQLの黒本になります。


目次

試験の基本情報

・試験名 :ORACLE MASTER Silver SQL 2019 (Oracle Database SQL Certified Associate)
・試験番号:1Z0-071-JPN
・試験日 :年中選択可能
・受験料 :4万1773円(税込み)
・受験方式:テストセンター or オンライン
・試験時間:120分

・問題数 :70問
・問題形式:選択式
・合格基準:正答率63%%以上

2025年5月時点の公式サイトの情報をもとに掲載しています。
下記が公式サイトになります。

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

ORACLE MASTER Silver SQL問題集

1.リレーショナルデータベースとOracleデータベース

1.構造化問い合わせ言語(SQL)に関して正しい記述はどれですか(2つ選択してください)
A.オブジェクト指向データベースに最適である
B.SQLを記述するには、物理データ・ストレージを正確に把握している必要がある。
C.データへのアクセス・パスは自動的に決定される。
D.リレーショナル・データベースに最適である。

解答

C、D

2.あなたは店舗スタッフのシフト管理のE-Rモデルを設計しています。次のビジネス・ルールを確認してください。

●スタッフ(STAFFS)は複数の時間枠(TIME_SLOTS)にアサインされています。各時間枠(TIME_SLOTS)には複数のスタッフ(STAFFS)が割り当てられます。
●STAFFSエンティティおよびTIME_SLOTSエンティティの主キーは、それぞれSTAFF_ID、TIME_SLOT_IDです。

STAFFSエンティティとTIME_SLOTSエンティティの間に多対多の関係が成り立つことから、アサイン(ASSIGNS)という名前の交差表を作成し、多対多の関係を1対多に解決しました。多対多の関係を1対多に解決したERモデルについて、正しい記述はどれですか(2つ選択してください)


A.STAFF_IDは、STAFFSエンティティ内の主キーであり、TIME_SLOTSエンティティ内の外部主キーである。

B.STAFF_IDは、STAFFSエンティティ内の主キーであり、ASSIGNSエンティティ内の外部キーである。

C.TIME_SLOTS_IDは、TIME_SLOTSエンティティ内の主キーであり、STAFFSエンティティ内の外部キーである。

D.TIME_SLOT_IDは、TIME_SLOTSエンティティ内の主キーであり、ASSIGNSエンティティ内の外部キーである。

解答

B、D

3.あなたは図書館の貸し出し管理エンティティ関連モデルを設計することになりました。次のビジネス・ルールを確認してください。

●各蔵書(BOOKS)は複数の会員(MEMBERS)に貸し出されます。各会員(MEMBERS)は複数の蔵書(BOOKS)を借りることができます。

●ある時点において一人の会員は上限6冊まで借りることができ、それらの蔵書ごとに別々の引き貸し出し、返却することができます。
このビジネス・ルールに基づき、次のようなエンティティ関連モデルを設計しました。

●BOOKSエンティティとMEMBERSエンティティ、それぞれの主キーはBOOK_ID、MEMBER_IDとします。
●BOOKSエンティティとMEMBERSエンティティの間の関連は多対多となるため、RENALという名前の交差表を作成することで、多対多の関連を1対多に分解しました。RENTALエンティティの主キーは、BOOK_IDとMEMBER_IDの2列からなる複合主キーにしました。

このエンティティ関連モデルについて正しい記述はどれですか。


A.同一の会員が同一の蔵書を複数回借りることを想定している。
B.同一の会員が同一の蔵書を複数回借りることを想定していない。
C.貸出し日(START_DATE)、返却日予定日(END_DATE)はBOOKSエンティティの属性である。
D.貸出し日(START_DATE)、返却日予定日(END_DATE)はMEMBERSエンティティの属性である。

解答

B

4.ER図に基づき、2つの表の関連する行を検索します。正しい記述はどれですか?

A.別の表に含まれる行と行とを関連付けることを外部結合という。
B.同じ表に含まれる行同士を関連付けることをクロス結合という。
C.3つ以上の表を関連付けることを復号問い合わせという。
D.エンティティ間のリレーションシップは、外部キーとして実装される。

解答

D

2.SELECT文の基礎とデータの扱い

1.SELECT文の説明において正しいものはどれですか(2つ選択してください)。

A.SELECT文では列名の指定が必須である。
B.「*」を指定するとすべての列を出力できる。
C.「%」を指定するとすべての列を出力できる。
D.SELECT文ではWHERE句の指定が必須である。
E.SELECT文ではFROM句の指定が必至である。

解答

B、E

2.データ型の説明として正しいものはどれですか。

あ:VARCHAR2
い:STRING
う:CHAR
え:NUMBER
お:NUM


A.あ・・・可変長文字列
 い・・・固定長文字列
 う・・・単一の文字
 え・・・整数および少数
 お・・・整数

B.あ・・・可変長文字列
 い・・・このようなデータ型はOracleに存在しない
 う・・・固定長文字列
 え・・・整数および少数
 お・・・このようなデータ型はOracleに存在しない

C.あ・・・このようなデータ型はOracleに存在しない
 い・・・可変長文字列
 う・・・固定長文字列
 え・・・少数
 お・・・整数

D.あ・・・可変長文字列
 い・・・このようなデータ型はOracleに存在しない
 う・・・固定長文字列
 え・・・このようなデータ型はOracleに存在しない
 お・・・整数および少数

解答

B

3.データ型に関して正しい記述はどれですか。

A.VARCHAR2列定義で長さを省略した時のデフォルトの長さは1文字である。
B.BFILE列定義を使用して格納したバイナリ・データは、表領域上に格納される。
C.CHAR列定義を使用すると可変長文字列となる。
D.DATE列定義を使用すると何年何月何日何時何分何秒という日時データを格納できる。

解答

D

4.列別名を「”」(二重引用符)でくくる必要があるのは、どのようなケースですか(3つ選択して下さい)。

A.列別名に空白や、-,?などの名前に使用できない記号を含むケース。
B.列別名に小文字を含み、列別名の大文字/小文字を区別したいケース。
C.列別名が、その表の他の列の名前と同じケース。
D.DATEやTYPE、TABLE、UPDATEといった、Oracleの訳語を列別名として使用するケース。
E.列別名の前のASを省略するケース。

解答

A、B、D

5.列別名について正しい記述はどれですか(2つ選択してください)。

A.列別名を付けると、問い合わせ結果の出力の見出しが列別名で表示される。
B.列別名の前のASは省略可能である。
C.SELECTリストの中で、ほかの列に付けた列別名を参照することができる。
D.Oracleの予約語を列別名として使うことは出来ない。

解答

A、B

6.NUMBER(4,2)として定義した列に値を挿入します。エラーにならずに挿入できる値はどれですか(3つ選択してください)。

A.1234
B.123.4
C.12.345
D.1.234
E.1.2345

解答

C、D、E

7.正常に実行されるといあわせはどれですか。

A.SELECT employee_id As'EMP-ID',job_id 'TYPE',department_id||'TYPE''DETAIL',salaryy*0.1 'Approx Tax' FROM empoloyees;
B.SELECT employee_id As"EMP#",job_id AS"TYPE",department_id||"TYPE"AS"DETAIL",salary*0.1 "Approx Tax" FROM empoloyees;
C.SELECT employee_id EMP_ID,job_id "TYPE",department_id||job_id DETAIL,salary*0.1 "Approx Tax" FROM empoloyees;
D.SELECT employee_id EMP-ID,job_id TYPE,department_id||job_id DETAIL,salary*0.1 AS "Approx Tax" FROM empoloyees;
解答

C

8.DESCRIBE コマンドの出力で確認できることは何ですか(3つ選択してください)。

A.格納されている行数
B.各列の列名
C.各列のNULL 値の格納の可否
D.各列のデータ型と精度
E. 各列に定義されている制約

解答

B、C、D

9.DUAL表について正しい記述はどれですか(2つ選択してください)。

A.使用するためには、各スキーマごとに明示的にDUAL表を作成する必要がある。
B.VARCHAR2型のDUAL 列のみを持つ。
C.ファンクションや演算子の動作を確認するために使用できる。
D.1行だけデータが格納されている。

解答

C、D

10.正常に実行される問合せはどれですか。

A. SELECT employee_id AS 'EMP-ID' FROM employees WHERE job_id="Fl_MGR";
B. SELECT employee_id 'EMP-ID' FROM employees WHERE job_id= 'FI_MGR';
C. SELECT employee_id AS "EMP-ID" FROM employees WHERE job_id="FLMGR";
D. SELECT employee_id "EMP-ID" FROM employees WHERE job_id='FIMGR';
解答

D

11.あなたは、EMPLOYEES表の名前(FIRST NAME)と職種(JOB_ID)を-でつなげて「scott-IT_MGR」のように表示したいと思います。適した問合せはどれですか。

A. SELECT first _name || – || job_id FROM employees;
B. SELECT first name ||’-‘|| job_ id FROM employees:
C. SELECT first_name + ‘-‘ + job_id FROM employees;
D. SELECT first_name & “-” & job_id FROM employees;

解答

B

12.あなたは、部門番号(DEPARTMENT_ID)と職種(JOB_ID)のリストを作りたいと考えています。どの部門にどの職種があるのか知りたいだけなので、EMPLOYEES表のデータに存在する部門と職種の組み合わせを重複を除いて表示します。どの問合せを使用しますか。

A. SELECT DISTINCT (department_id, job_id) FROM employees;
B. SELECT department_id, DISTINCT job_id FROM employees;
C. SELECT DISTINCT department_id, job_id FROM employees;
D. SELECT DISTINCT department_id, DISTINCT job_id FROM employees;

解答

C

13.あなたは、EMPLOYEES表の名前(FIRST_NAME)と社員番号(EMPLOYEE.JD)を「scotts ID is 100」のように表示したいと思います。適した問合せはどれですか(2つ選択してください)。

A. SELECT first_name| | q’ <‘s ID is >’ | |employee_id FROM employees;
B. SELECT first_name| | ”s ID is ‘| | employee_id FROM employees;
C. SELECT first_name|| q’\’s ID is \’ | | employee_id FROM employees;
D. SELECT first_name|| “‘s ID is” | | employee_id FROM employees;
E. SELECT first_name| | ‘s ID is | | employee_id FROM employees;

解答

A、C

14.算術演算子の優先順位のルールについて正しい記述はどれですか(2つ選択してください)。

A.*と/のみを含む式では、カッコがない場合、*が優先される。
B.*と+のみを含む式では、カッコがない場合、*が優先される。
C.*と/と+と-を含む式では、カッコがない場合、左から右に評価される。
D. 優先したい箇所を()で括ることで式内の算術演算子のデフォルトの優先順位を変更できる。

解答

B、D

15.Commission _pct列がNULL でないデータを抽出したい場合、どのようなWHERE句を使いますか。

A. WHERE commission _pct ^= NULL
B. WHERE commission_pct != NULL
C. WHERE commission_pct NOT = NULL
D. WHERE commission_pct NOT IS NULL
E. WHERE commission_pct IS NOT NULL

解答

E

16.あなたはEMPLOYEES表のCOMMISSION PCT 列の値がNULLで、JOB_ID列の値がNULL でない行を表示したいと思います。適した問合せはどれですか。

A. SELECT * FROM employees WHERE commission_pct = " AND job_id <>";
B. SELECT * FROM employees WHERE commission_pct = 'NULL' AND job_id !='NULL';
C. SELECT * FROM employees WHERE commission_pct IS NULL AND job_id IS NOT NULL;
D. SELECT * FROM employees WHERE commission_pct IS NULL AND job_id NOT IS NULL;
解答

C

3.データの選択(検索)およびソート

1.WHERE に指定する検索条件の説明として正しいものはどれですか。

あ:ON
い:LIKE
う:IN
え:BETWEEN


A.あ…リストアップした複数の値のすべてに等しい
 い…2つの値の間に含まれる
 う…リストアップした複数の値のいずれかに等しい
 え…文字列のあいまい検索を行う

B.あ…このような検索条件はOracleに存在しない
 い…文字列のあいまい検索を行う
 う…リストアップした複数の値のいずれかに等しい
 え…2つの値の間に含まれる

C.あ…2つの条件のいずれかが真
 い…このような検索条件はOracleに存在しない
 う…リストアップした複数の値のいずれかに等しい
 え…2つの値の間に含まれる

D.あ…・2つの条件がともに真
 い…文字列のあいまい検索を行う
 う…2つの条件のいずれかが真
 え…2つの値の間に含まれる

解答

B

2.あなたは、EMPLOYEES表から、後ろから3文字目がrで、rの前に4文字以上ある苗字(LAST_NAME)を抽出したいと思っています。
どの問合せを使用しますか。


A. SELECT * FROM employees WHERE last_name LIKE ‘????r??;
B. SELECT * FROM employees WHERE last_name LIKE ‘????*??’;
C. SELECT * FROM employees WHERE last_name LIKE ‘%%%%r%%;
D. SELECT * FROM employees WHERE last_name LIKE ‘ _ _ _ _%r_ _’;
E. SELECT * FROM employees WHERE last_name LIKE ‘_ _ _ _r_ _’;

解答

D

3.次の問合せを確認してください。

SELECT * FROM employees
WHERE department_id > 30
AND job_id IN ('ST_CLERK', 'SH_CLERK', 'SA_REP')
OR salary > 4000;

同じ結果を戻すWHERE句はどれですか(2つ選択してください)。

A. WHERE department_id>30
AND
(job_id = 'ST_CLERK' OR job_id = 'SH_CLERK' OR job_id = 'SA_REP')
OR salary > 4000;
B. WHERE (department_id>30
AND job_id IN ('ST_CLERK', 'SH_CLERK', 'SA_REP') )
OR salary > 4000;
C. WHERE department_id>30
AND (job_id IN ('ST_CLERK', 'SH_CLERK', 'SA_REP')
OR salary > 4000);
D. WHERE department_id>30
AND (job_id = 'ST_CLERK'
OR job_id = 'SH_CLERK'
OR job_id = 'SA_REP'
OR salary > 4000);
解答

A、B

4.ORDER BY句について正しい記述はどれですか(2つ選択してください)。

A.ORDER BY句では、SELECT リストの位置の数字で指定できる。
B.ORDER BY句では、列別名は使用できない。
C.降順でソートすると、デフォルトではNULL 値は未尾に表示される。
D. SELECT リストで指定しなかった列でソートすることもできる。

解答

A、D

5.次の問合せを確認してください。
department_id列はNUMBER 型、hire.date列はDATE 型です。

SELECT department_id, first_name, hire_date FROM employees
ORDER BY 1, 3 DESC;

どのような順でソートされますか。

A. department_id 列について昇順か降順か指定していないので、エラーになる。
B.department idについて小さい順にソート、それを崩さない範囲でhire.daleについて新しい順にソートされる。
C.department_idについて大きい順にソート、それをさない範囲でhire.dateについて新しい順にソートされる。
D. deparment_idについて大きい順にソート、それを崩さない範囲でhire_dateについて古い順にソートされる。

解答

B

6.あなたは、名前(FIRST_NAME)、部門番号(DEPARTMENT_ID)、職種番号(JOB_
ID)のリストを作ります。このリストは、名前(FIRST_NAME)に文字列am(大文字/小
文字は問いません)が含まれるデータのみを含みます。また、リストは部門番号について 昇順で、職種番号について降順でソートします。
適切な問合せはどれですか。

A. SELECT first _name, department_id, job_id FROM employees
WHERE UPPER(first_name) LIKE '_AM_'ORDER BY department_id, job_id;
B. SELECT first_name, department_id, job_id FROM employees
WHERE UPPER(first_ name) IN ('AM')
ORDER BY department_id ASC, job_ id DESC;
C. SELECT first_name, department_id, job_id FROM employees
WHERE UPPER(first_name) LIKE '%AM%'
ORDER BY 2, 3;
D. SELECT first_name, department_id, job_id FROM employees
WHERE UPPER(first_name) LIKE '%AM%'
ORDER BY 2, 3 DESC;
解答

D

7.置換変数に関して正しい記述はどれですか。

A.置換変数はDELETE 文では使用できない。
B.置換変数はINSERT文でも使用できる。
C.置換変数はSELECT 何とFROM向とWHERE句のみで使用できる。
D.&&という接頭辞の付く置換変数と、&という接頭辞の付く置換変数の使い方はまったく同じである。

解答

B

8.次のSQLスクリプトを確認してください。

SELECT employee_id, &&column, job_id
FROM employees WHERE job_id =&job;

同じセッションでこのスクリプトを4回実行しました。なお、セッションの中で、DEFINEコマンドやUNDEFINE コマンドは使用しません。また、job_id列はVARCHAR2型です。
正しい記述はどれですか(2つ選択してください)。


A.column の値の入力は4回求められる。
B.jobの値の入力は4回求められる。
C.jobに値を入力するときは、SHIMGR’のように(引用符)で括った状態で入力
する必要がある。
D.jobに入力した値は自動的に大文字に変換されるので、大文字/小文字を意識せず
に値を入力して構わない。

解答

B、C

9.置換変数を明示的に定意するSOL*Plusコマンドはどれですか。

A. SET
B. VERIFY
C. DEFINE
D. UNDEFINE

解答

C

10.SET VERIFY ON/OFF の設定について正しい記述はどれですか(2つ選択してくださ)

A.ONにすると、&&置換変数を含むSQLを実行するときに、置換前後のSQLが表示される。
B.OFFにすると、&&置換変数を含むSQLを実行するときに、置換前後のSQLが表示される。
C. SQL*Plus では使用できない。
D. SQL Developer で使用できる。

解答

A、D

4.単一行ファンクションを使用した出力のカスタマイズ

1.単一行ファンクションに関して正しい記述はどれですか。

A. SELECT文のSELECT リストでのみ使用できる。
B.DUAL表とともに使用することはできない。
C.問合せ対象の表の各行に対して1つの結果行を戻す。
D.行のグループに対して1つの結果行を戻す。

解答

C

2.単一行ファンクションとその説明として正しいものはどれですか。一行ファンクションとその説明として正しいものはどれですか。

あ:べき乗を戻す。
い:除算のあまりを戻す。
う:値を指定した位置で四捨五入する。
え:値を指定した位置で切り捨てる。
お:2つの文字列を連結する。
か:すべて大文字にする。
き:頭文字だけ大文字、残りを小文字にする。


A.あ…TIMES
 い…MOD
 う…TRUNC
 え…ROUND
 お…CONCAT
 か…INITCAP
き…LOWER

B.あ…POWER
い…MOD
う…ROUND
え…TRUNC
お…CONCAT
か…UPPER
き…INITCAP

C.あ…POWER
い…MOD
う…ROUND
え…TRUNC
お…CONNECT
 か…INITCAP
 き…LOWER

D.あ…PRODUCT
い…DIVISION
う…ROUND
え…TRUNC
お…CONCAT
か…UPPER
き…LOWER

解答

B

3.次の問合せを確認してください。

文1 : SELECT ROUND(2657.5678, 2) FROM dual;
文2 : SELECT TRUNC(2657.5678, -2) FROM dual;

文1、文2、それぞれの結果は何が返されますか。


A. 文1…2657.57
 文2…エラー

B.文1…2657.6
 文2…2650

C. 文…12657.57
 文2 ⋯2600

D. 文1…2700
 文2…2657.56

解答

C

4.次の問合せを確認してください。

SELECT POWER (2,3) FROM dual;

どのような結果が返されますか。

A. 0
B. 5
C. 6
D. 8

解答

D

5.次の問合せを確認してください。

SELECT MOD(11,3) FROM dual;

どのような結果が返されますか。

A. 0
B. 1
C. 2
D. 3

解答

C

6.hire_date 列のデータ型はDATEです。
次の式と戻す値のデータ型について正しい記述はどれですか。


A.sysdate-hire_date は日付を戻す。
B.hire_date + sysdate は数値を戻す。
C.hire_date+10は日付を戻す。
D.hire_date*3は数値を戻す。

解答

C

7.NLS_DATE_FORMAT はDD-MON-RR に, NLS_DATE_LANGUAGE は AMERICAN
に設定されています。次の問合せを確認してください。

SELECT MONTHS_BETWEEN('31-DEC-21', '31-OCT-21') FROM dual;

どのような結果が返されますか。

A. -2
B. -1
C. 1
D. 2

解答

C

8.NLS_DATE_ FORMAT は DD-MON-RR 4, NLS_ LANGUAGE に AMERICAN. NLS_TERRITORYはAMERICAに設定されています。
2021年12月1日は水曜日です。今、2021年12月1日の次の金曜日の日付を調べたいと思います。どの問合せを使用しますか(2つ選択してください)。


A. SELECT NEXT_DAY(’01-DEC-21′, FRI) FROM dual;
B. SELECT NEXT_DAY(’01-DEC-21′,6) FROM dual;
C. SELECT NEXT_DAY(FRI, 01-DEC-21′) FROM dual;
D. SELECT ADD_DAY(’01-DEC-21′, FRI) FROM dual;

解答

A、B

9.NLS_DATE_FORMAT は DD-MON-RR に, NLS_DATE LANGUAGE は AMERICANに設定されています。
次の問合せを確認してください。

SLECT ADD,MONTHS('15-JUM-21',3) FRON dlel;

返される値は何を意味しますか。

A.2021年6月15日の3年後の日付
B.2021年6月15日の3か月後の日付
C. 2021年6月15日の3日後の日付
D.エラーとなる。

解答

B

5.変換ファンクションおよび条件式の使用

1.次の問合せを確認してください。

SELECT ROUND (TRUNC (314. 1592, -2), 2) FROM dual;

どのような結果になりますか。

A. 314.2
B. 314.1
C. 300
D. 314.16
E. 314.15

解答

C

2.次の問合せを確認してください。

SELECT REPLACE (TRIM(TRAILING '1' FROM '01ABCDE01'), '01', '99') FROM dual;

どのような結果が返されますか。

A. 01ABCDEO
B. 01ABCDE99
C. 99ABCDE0
D. 99ABCDE99

解答

C

3.入社日(hire_date)の翌月の最初の金曜日の日付を2021-12-31のような書式で表示したいと思います。
NES_LANGUAGE はAMERICAN、NLS_TERRITORYがAMERICAに設定されています。
どの問合せを使用しますか。

A. SELECT TO _DATE(NEXT_DAY(LAST_DAY (hire _date),6), 'YYYY-MM-DD')from employees;
B. SELECT TO_CHAR(LAST _DAY(NEXT_DAY (hire_date,6)), 'YYYY-MM-DD')from employees;
C. SELECT TO_CHAR(NEXT_DAY(LAST _DAY(hire _date),6), 'YYYY-MM-DD')from employees;
D. SELECT TO_DATE(LAST _DAY(NEXT_DAY (hire_date, 6)), 'YYYY-MM-DD')from employees;
解答

C

4.あなたは、入社日(hire_date)から3か月経過した後の最初の水曜日の日付を表示しようと考えています。セッションでNLS_TERRITORY は AMERICAに設定されているため、週の最初の曜日は日曜日です。
どの問合せを使用しますか(2つ選択してください)。

 A. SELECT employee_ id, ADD_MONTHS(NEXT_DAY(hire_date, 4), 3) FROM employees;
B. SELECT employee_id, NEXT_DAY (MONTHS_BETWEEN(hire_date, 3),'WEDNESDAY') FROM employees;
C. SELECT employee_id, NEXT_DAY (MONTHS_BETWEEN(hire_date, 3), 4)FROM employees;
D. SELECT employee_id, NEXT_DAY(ADD_MONTHS(hire_date, 3),'WEDNESDAY') FROM employees;
E. SELECT employee_id, NEXT_DAY(ADD_MONTHS(hire_date, 3), 3) FROM employees;
F. SELECT employee_id, NEXT_DAY(ADD_MONTHS(hire_date, 3), 4) FROM employees;
解答

D、F

5.次の問合せを確認してください。

SELECT TO_CHAR(12345.67, '$9,999') FROM dual;

どのような出力になりますか。

A. $12,345.67と表示される。
B. #####表示される。
C. $12,345と表示される。
D. $1,234と表示される。

解答

B

6.日付の表示書式はDD-MON-RRに設定されています。また、NLS LANGUAGEは変換ファンクションの使い方が正しいものはどれですか(2つ選択してください)。

A. SELECT * FROM employees
WHERE hire_date > TO_CHAR('2021/01/31', 'YYYY/MM/DD'):
B. SELECT * FROM employees
WHERE hire_date > TO_DATE(2021/01/31'; 'YYYY/MM/DD);
C. SELECT * FROM employees
WHERE TO_DATE(hire_date, 'YYYY-MM-DD') = '2021-01-31';
D. SELECT * FROM employees
WHERE TO_CHAR(hire_date, 'YYYY-MM-DD') = '2021-01-31';
解答

B、D

7.WHERE 旬の記述を確認してください。
hire-date列はDATE 型、salary列はNUMBER型です。
NL.S_DATE_FORMATはDD-MON-RRに、NLS_LANGUAGEはAMERICANに設定されています。
変換ファンクションによる明示的な型変換が必要なものはどれですか。


A. WHERE hire_date < ’31-MAR-2021′
B. WHERE hire_date < ’31-MARCH-21′
C. WHERE hire_date < ’31-03-21′
D. WHERE salary BETWEEN ‘5000’ AND ‘6000’

解答

C

8.次の問合せを確認してください。

SELECT CONCAT (first_name, CONCAT (salary, hire_date)) FROM employees;

正しい記述はどれですか。

A.データ型は暗黙変換され、正常に実行される。
B.データ型が揃っていないのでエラーになる。
C.ファンクションはネストできないのでエラーになる。
D.TO_CHAR変換ファンクションを入れる必要がある。

解答

A

9.正常に実行される問合せはどれですか(3つ選択してください)。

A. SELECT COALESCE(‘X’,NULL, Y’,10) FROM dual;
B. SELECT COALESCE(10,100,1000) FROM dual;
C. SELECT COALESCE(X’,NULL, Y’, 10′) FROM dual;
D. SELECT COALESCE(NULL, 10, 100) FROM dual;

解答

B、C、D

10.EMPLOYEES 表からコミッション割合(COMMISSION_PCT列)のリストを作成します。コミッション割合がNULL の行は、「No Commission」と表示します。なお、COMMISSION_PCT列はNUMBER 型です。エラーにならずに実行されるものはどれですか(2つ選択してください)。

A. A. SELECT employee_id, NVL(commission_pot,'No Commission') FROM employees;
B. SELECT employee _id, NVL(commission pct, TO_NUMBER('No Commission'))FROM employees;
C. SELECT employee_id, NVL(TO_CHAR(commission_pct), 'No Commission') FROM employees;
D. SELECT employee_id, NVL2(commission pct, commission pot, 'No Commission') FROM employees;
E. SELECT employee_id, NVL2(commission pct, commission pct,TO_NUMBER('No Commission')) FROM employees;
F. SELECT employee_id, NVL2(commission_pct, TO_CHAR(commission_pct), 'No Commission') FROM employees;
解答

C、F

6.集計ファンクションを使用したデータの集計

1.COUNT 関数について正しい記述はどれですか(2つ選択してください)。

A. COUNT(departiment_id)は departiment_id列がNULL値以外の数を戻す。
B.COUNT(*)は重複行を除いた行数を戻す。
C.COUNT(DISTINCT *)は重複行を除いた行数を戻す。
D.COUNT(DISTINCT job_id)はjob_id列の値がNULL 値以外でかつ重複値を除い
た数を戻す。

解答

A、D

2.TEST 表のデータを確認してください。

SQL > SELECT * FROM test;

ID    NAME
----- -----------
1         A
2         B
3
4         A

次の問合せは何を返しますか。
あ : SELECT COUNT(ID) FROM test;
い : SELECT COUNT(NAME) FROM test;
う : SELECT COUNT(DISTINCT NAME) FROM test;
え : SELECT COUNT(DISTINCT NVL(NAME,’N’)) FROM test;
お : SELECT COUNT(*) FROM test;

A.あ…4 い…3 う…2 え…3 お…4
B.あ…4 い…4 う…3 え…3 お…4
C.あ…4 い…3 う…2 え…4 お…4
D.あ…4 い…3 う…3 え…4 お…3

解答

A

3.集計関数について正しい記述はどれですか(2つ選択してください)。

A.MAX関数、MIN関数は文字列データに対して使用できる。
B.MAX関数、MIN関数はDATE データに対して使用できる。
C.AVG関数は、NULL 値を暗黙的にOに変換して平均値を算出する。
D.集計関数は3レベルまでネストできる。

解答

A、B

4.実行してエラーにならない問合せはどれですか。

A. SELECT job_id, AVG(MIN(salary) FROM employees GROUP BY job_id;
B. SELECT MIN(AVG(salary)) FROM employees;
C. SELECT department_id, job_id, AVG(salary) FROM employees GROUP BY job_id, department_id;
D. SELECT department_id, job_id, AVG(salary) FROM employees WHERE department_id =50 GROUP BY job_id;

解答

C

5.正常に実行される問合せはどれですか(2つ選択してください)。

A. SELECT COUNT(job_id) FROM empioyees WHERE commission_pet IS NOT NULL AND COUNT(job_id)>4 
GROUP BY department…_id, job_id;
B. SELECT job_id, COUNT(department_id) FROM employees
WHERE commission_pct IS NOT NULL HAVING job_id LIKE 'A%';
C. SELECT COUNT(DISTINCT job_id) FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY department_id
HAVING count(job_id) >4;
D. SELECT COUNT (job_id) FROM employees WHERE commission_pct IS NULL
AND first_name LIKE 'A%';

C、D

6.GROUP BY句を含む問合せについて、正しい記述はどれですか(2つ選択してください)。

A.WHERE句を使用すると、グループに分割する前に必要な行を選択することができる。
B.WHERE句を使用すると、グループに分割した後で必要な行を選択することができる。
C. WHERE句には、集計ファンクションを含む条件を含めることはできない。
D. WHERE句には、集計ファンクションを含む条件を含めることができる。

解答

A、C

7.SELECT文の HAVING旬について正しい記述はどれですか。

A.HAVING 句で使用する集計関数は、必ず問合せのSELECTリストで指定する必要がある。
B.HAVING 句で使用する単体の列は、必ず問合せのSELECT リストで指定する必要がある。
C.HAVING 句に副問合せを使用することはできない。
D.HAVING 句を使用すると、グループに分割した後で結果を絞り込むことができる。

解答

D

7.結合を使用した複数の表のデータの表示

1.次の問合せを確認してください。

SELECT employee_id, department_name
FROM employees RIGHT OUTER JOIN departments
USING (department_id);

この問合せはどれに分類されますか。

A.完全外部結合
B. 右側外部結合
C.左側外部結合
D. デカルト積
E. 自然結合

解答

B

2.次の問合せを確認してください。

SELECT e. employee_id, e. first_name, d. department_name 
FROM employees e LEFT OUTER JOIN departments d USING (department_id);

この問合せの出力について、正しい説明はどれですか(2つ選択してください)。

A. department_idがNULLの社員は含まれないが、社員がいない部門は含まれる。
B.department_idがNULL の社員は含まれるが、社員がいない部門は含まれない。
C.cepartmentid列がNULL の社員も、社員がいない部門も含まれる。
D.departments 表のデータは全行含まれるが、employees 表のデータは全行含まれるとは限らない。
E.employes表のデータは全行含まれるが、departments表のデータは全行含まれ
るとは限らない。

解答

B、E

3.外部結合について正しい説明はどれですか(2つ選択してください)。

A、外部結合の結果には、内部結合で返されるデータが含まれている。
B.Oracle結合構文で完全外部結合を記述するときは、WHERE 旬の結合条件の両側にOracle 結合演算子(+)を付ける。
C.SOL-1909準拠のANSI結合構文には、完全外部結合の構文がない。
D.左側外部結合は、結合条件が一致するすべての行に加えて、結合条件が一致しない行の一部を戻す。

解答

A、D

4.SQL.1999 準拠のANSI結合構文で、自然結合を行うときのキーワードはどれですか。

A. JOINO
B. INNER JOIN
C. OUTER JOIN
D. NATURAL JOIN

解答

D

5.正しい記述はどれですか。

A.SQL.1999準拠のANSI結合構文は、Oracle 結合構文よりもパフォーマンスが体い。
B. SQL.1999準拠のANSI結合構文は、Oracle 結合構文よりもパフォーマンスが高い。
C.Oracle 結合構文では、自然結合の構文がある。
D.SQL:1999準拠のANSI結合構文では、完全外部結合の構文がある。

解答

D

6.自己結合しているのはどれですか(2つ選択してください)。

A. SELECT eemployee _id, emanager_id, e.first_name ||' reports to '|| m.fist.
FROM employees e LEFT OUTER JOIN employees m ON e.manager_id=m.employee_id;
B. SELECT e.employee_id, e.first_name, d.department_name
FROM employees e RIGHT OUTER JOIN departments d USING (department_id);
C. SELECT e.employee_id, e.manager_id, e.first_name ||' reports to '|| m.first_ name FROM employees e, employees m WHERE e.manager_id=m.employee_id(+);
D. SELECT e.employee_id, e.first_name, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON e.department _id=d department id;
解答

A、C

7.自己結合について正しい記述はどれですか(2つ選択してください)。

A.必ずON句を使用する必要がある。
B.外部結合であってもよい。
C.問合せの中で、表に対し別名を付ける必要はない。
D.ON句を使用して結合できる。

解答

B、D

8.次の問合せは何を行っていますか。

SELECT employee_id, location_ id FROM employees CROSS JOIN departments;

A. 完全外部結合
B. 自然結合
C.デカルト積
D. 副問合せ

解答

C

9.次のEMP表と問合せを確認してください。

ID  NAME
--  ------
1    Allen
2    King
3    Scott
4    John
SELECT name FROM emp e1 CROSS JOIN emp e2 CROSS JOIN emp e3;

実行時に返される行数は何行ですか。

A.1行
B.4行
C.8行
D.12行
E.16行
F.64行

解答

F

10.EMPLOYEES表と、次のYEARS表があります。

TIME_RANGE    BEGIN_DATE     END_DATE
-----------  --------------  --------------
OLD          01-JAN-2000     31-DEC-2002
MID          01-JAN-2003     31-DEC-2005
NEW          01-JAN-2006     31-DEC-2009

非等価結合を行っているものはどれですか(3つ選択してください)。

A. SELECT e.employee_id, ehire_date, y.time_range FROM employees e JON
years y
ON (e.hire_date BETWEEN .begin_date AND y.end_date);
B. SELECT e.employee_id, e.hire_date, y.time_range FROM employees e LEFT OUTER JOIN years y
ON (e.hire_date >=y.begin_date AND e.hire_date <=y.end_date);
C. SELECT e.employee_id, e.hire_date, y.time_range FROM employees e years y
WHERE hire_date BETWEEN y.begin_date AND y.end_date;
D. SELECT e.employee_id, e.hire_date, y.time_range FROM employees e JOIN years y
ON (e.hire_date = .begin_date);
解答

A、B、C

11.非等価結合について正しい記述はどれですか(2つ選択してください)。

A.USING旬で結合条件を指定する。
B.Oracle 結合構文を使用できる。
C. SQL:1999準拠のANSI結合構文を使用できる。
D.0.3つ以上の表を非等価結合で結合することはできない。

解答

B、C

12.SQL:1999 準拠の ANSI結合構文では、非等価結合を行うときにどの句を使用して非等価の結合条件を記述しますか。

A. NATURAL JOIN 句
B. USING 句
C. ON 句
D. SQL:1999 準拠のANSI結合構文では非等価結合を記述できない。

解答

C

8.副問合わせ

1.単一行の副問い合わせについて正しい記述はどれですか(2つ選択してください)。

A.WHERE句やHAVNG旬で使用できる。
B.副問合せが0行の結果を返した場合、エラーにはならない。
C.副問合せが2行以上の結果を返した場合、エラーにはならない。
D.1つのSELECT文に含めることができる単一行副問合せは1つだけである。

解答

A、B

2.社員表(EMPLOYEES)を使用してレポートを作成します。副問合せを使用する必要があるのは、どのレポートですか(2つ選択してください)。

A.名前(FIRST_NAME)がScottという人の給与(SALARY)より、給与が高い人の苗字(LAST_NAME)。
B. 全社員の平均給与より給与(SALARY)が低い人の人数。
C.ジョブコード(JOBID)ごとの、コミッション割合(COMMISSION PCT)がNULL でない人の給与(SALARY)の平均。
D. 部門番号(DEPARTMENT_ID)ごとの、苗字(LAST_NAME)がAから始まる人でかつコミッション割合(COMMISSION_PCT)がNULLでない人の人数。

解答

A、B

3.次の問合せを実行しました。

SELECT employee_id, first_name
FROM employees
WHERE salary > ANY (SELECT AVG(salary) FROM employees
GROUP BY department_id);

この問合せについて、正しい説明はどれですか。

A.副問合せ部分でGROUP BY句を書いているため、エラーとなる。
B.副問合せの前のANYは常に省略可能である。
C.部門ごとの平均給与の最低額よりも給与が高い人をリストしている。
D.部門ごとの平均給与の最高額よりも給与が高い人をリストしている。

解答

C

4.以下のSELECT文を相関副問合せにするために、【A】に指定すべき句を選択してください。

SELECT empno, ename, sal FROM emp1 e WHERE sal < ( SELECT MIN(sal) FROM sal_hist s [A] );

A. WHERE s.empno=2001
B. WHERE s.empno=e.empno
C. ON s.empno=e.empno
D.何も指定しない

解答

B

5.以下のSELECT文を自己相関副問合せにするために、【A】に指定すべき句を選択して
ください。

SELECT ename, sal, deptno FROM emp2 o
WHERE sal > (SELECT AVG(sal) FROM [ A ] WHERE i. deptno = o. deptno);

A. emp2
B. emp2 o
C. emp2 i
D. 何も指定しない

解答

C

9.集合演算

1.演算子とその説明として正しい組み合わせはどれですか。

あ:1つ目の問合せと2つ目の問合せの両方に含まれるデータを戻す。
い:1つ目の問合せの結果に含まれ、2つ目の問合せの結果に含まれないデータを戻す。
う:1つ目の問合せの結果と、2つ目の問合せの結果を合わせたものを戻す。重複は排除しない。
え:1つ目の問合せの結果と、2つ目の問合せの結果を合わせたものを戻す。重複は排除する。

A. UNION…あ UNION ALL…う INTERSECT…え MINUS…い
B. UNION…う UNION ALL…え INTERSECT…あ MINUS…い
C. UNION…え UNION ALL…う INTERSECT…あ MINUS…い
D. UNION…え UNION ALL…う INTERSECT…い MINUS…あ

解答

C

2.次の文章はUNION演算子、UNION ALL 演算子、どちらの説明ですか。正しい組み合わせを選んでください。

あ:重複行は排除される。
い:重複行は排除されない。
う:出力はソートされる。
え:出力はソートされない。

A. UNION…い、う UNION ALL…あ、え
B. UNION…あ、う UNION ALL…い、え
C. UNION…い、え UNION ALL…あ、う
D. UNION…あ、え UNION ALL…い、う

解答

B

3.UNION 演算子について正しい記述はどれですか(2つ選択してください)。

A.重複する値をチェックするときに、NULL 値は無視されない。
B.デフォルトでは出力はソートされない。
C.すべてのSELECT文で、選択する列の数が同じでなければならない。
D.すべてのSELECT文で、列の名前が同じでなければならない。

解答

A、C

4.INTERSECT 演算子による複合問合せについて正しい記述はどれですか(2つ選択してください)。

A.両方の問合せに共通する行が返される。
B.INTERSECTのほうがMINUSより優先度が高い。
C.UNIONのほうがNTERSECTより優先度が高い。
D.1つのSQL 文に複数のINTERSECT演算子を含めることができる。

解答

A、D

5.まったく同じ表構造を持つ GUEST1表とGUEST2表があります。GUEST1表のデータの中でGUEST2表に含まれないデータを抽出したいと思います。目的の結果を得るにはどの問合せを使用しますか。

A. SELECT * FROM guest2 MINUS SELECT * FROM guest1;
B. SELECT * FROM guest1 MINUS SELECT * FROM guest2;
C. SELECT * FROM guest2 INTERSECT SELECT * FROM guest1;
D. SELECT * FROM guest1 INTERSECT SELECT * FROM guest2;
E. SELECT * FROM guest2 SUBTRACT SELECT * FROM guest1;
F. SELECT * FROM guest1 SUBTRACT SELECT * FROM guest2;

解答

B

6.複合問合せの各問合せに含まれる列のデータ型と列数を一致させるために、どのような方法を使いますか。

A.列リストに含まれる別とデータ型を揃えるために、ウイルドカード「%」を指定する。
B. 2番目の問合せに含まれる列数は、1番目の問合せに含まれる列数と揃うように暗黙的にNULL が追加されるので、特に対応する必要はない。
C.列リストに含まれる列数とデータ型を揃えるために、問合せの選択リストにNULLを追加する。
D.2番目の問合せのデータ型は、1番目の問合せのデータ型と揃うように暗黙的に型変換が行われるので、特に対応する必要はない。

解答

C

7.EMPLOYEES1 表とEMPLOYEES2表はEMPLOYEES 表と同じ表構造を持った表です。
次の問合せを確認してください。

SELECT employee_id AS "ID",first_name AS "NAME" FROM employees1
1⃣
UNION
SELECT employee_id AS "NO", last_name AS "LAST NAME" FROM employees2
2⃣;

この問合せに ORDER BY句を追加したいと思います。追加したときにエラーにならないものはどれですか(3つ選択してください)。

A.1⃣の位置に ORDER BY frst_nameと追加する。
B.1⃣の位置に ORDER BY”NAME”と追加する。
C.1⃣の位置に ORDER BY 2と追加する。
D.2⃣の位置に ORDER BY 2と追加する。
E.2⃣の位置に ORDER BY last _name と追加する。
F.2⃣の位置に ORDER BY”NAME”と追加する。
G.2⃣の位置に ORDER BY hire_date と追加する。
H.2⃣の位置に ORDER BY frst_nameと追加する。

解答

D、F、H

8.UNION を使用した問合せで返される結果について正しい説明はどれですか。

A.結果はSELECT 句の1列目の列値が昇順になるようにソートされている。
B.結果はSELECT 句の最後の列の列値が昇順になるようにソートされている。
C.結果はSELECT 句の1列目の列値が降順になるようにソートされている。
D.結果はSELECT 旬の最後の列の列値が降順になるようにソートされている。

解答

A

9.複合問合せにおける ORDER BY句の使用について正しい記述はどれですか(2つ選択
してください)。


A.ORDER BY句では、最初の問合せに含まれる列名や列別名で指定することもできる。
B.複合問合せの各問合せには独自のORDER BY句を書いてもエラーにはならないが、複数 ORDER BY句を書いた場合はすべての ORDER BY句が無視され、最初の問合せの1列目でソートされる。
C.ORDER BY句では、ソート列をSELECT 列の位置の数字で指定することもできる。
D.デフォルトでソートされて出力されるのでORDER BY句を書くとエラーになる。

解答

A、C

10.次の文を確認してください。

SELECT 'A' AS "Dummy", sysdate "Date", 1 "Dummy2" FROM dual WHERE 1=1
INTERSECT
SELECT UPPER('a') AS "Mock", sysdate, ROUND(1) "Mock2" FROM dual
INTERSECT
SELECT INITCAP ('a'), sysdate "SYSTEM DATE", 0.9+0.1 FROM dual;

実行時に何行返されますか。

A. 0行
B. 1行
C.2行
D.3行
E. 構文エラーになる

解答

B

11.次の文を確認してください。

SELECT 'X' AS "Dummy", sysdate+1 "Date", 10 "Dummy2" FROM dual WHERE 1=1
UNION
SELECT UPPER('x') AS "Mock", sysdate+1, TRUNC(10) "Mock2" FROM dual WHERE 0-0
UNION ALL
SELECT INITCAP('x'), sysdate+1 "SYSTEM DATE", 2*5 FROM dual
UNION ALL
SELECT 'X' "TEMP", sysdate+1 "TOMORROW", 9+1 "TEMP2" FROM dual;

実行時に何行返されますか。

A.0行
B.1行
C.2行
D.3行
E.構文エラーになる

解答

D

10.データの変更とトランザクション

1.データ操作言語(DML)について正しい記述はどれですか(2つ選択してください)。

A.1つのUPDATE 文で複数の列の値をまとめて更新することはできない。
B. 1つのUPDATE 文のSET 旬に複数の副問合せを書くことはできない。
C.INSERT文でNULL 値を明示的に挿入することができる。
D.NSERT文で明示的に値を設定しなかった列には、デフォルト値もしくはNULL
値が挿入される。
E. DELETE文でWHERE句を書かないと1行も削除されない。

解答

C、D

2.次のコマンドで CUSTOMERS表を作成しました。

CREATE TABLE customers
(customer_id NUMBER(4) PRIMARY KEY,
name VARCHAR2(20) NOT NULL,
start_date DATE DEFAULT SYSDATE,
comments VARCHAR2(1000));

正常に実行される INSERT文はどれですか。

A. INSERT INTO customers VALUES (3, ‘KING’, null, ‘From Web campaign’);
B. INSERT INTO customers (customer_id, name, start_date) VALUES (2, ‘ALLEN);
C. INSERT INTO customers VALUES (1, ‘SCOTT);
D. INSERT INTO customers VALUES(null, ‘SMITH’, null, ‘With 10% discount);

解答

A

3.PRODUCTS表から RELEASE_DATE 列が2021年1月1日より前の行を削除しようと思います。
正常に実行されるDELETE 文はどれですか(2つ選択してください)。

A. DELETE product_id FROM products WHERE release_date < TO_DATE('2021-01-01', YYYY-MM-DD');
B. DELETE * FROM products WHERE release_date < TO_DATE(2021-01-01,'YYYY-MM-DD');
C. DELETE FROM products WHERE release_date < TO_DATE('2021-01-01','YYYY-MM-DD');
D. DELETE products WHERE release_date < TO_DATE(2021-01-01'YYYY-MM-DD');
解答

C、D

4.EMPLOYEES_WORK表はEMPLOYEES 表のデータをコピーして作った作業用の表で、表構造はまったく同じです。EMPLOYEES 表で給与のデータのみが更新されたので、それをEARLOVES WORK表に反はさせようと考えています。どのUPDAE文を使用しますか(2つ選択してください)。

A. UPDATE employees_work SET salary = (SELECT salary FROM employees);
B. UPDATE employees_work SET salary = (SELECT salary FROM employees
WHERE employee_id=employee_id);
C. UPDATE employees_work w SET salary = (SELECT salary FROM employees
WHERE employee_id=w.employee_id);
D. UPDATE employees_work w SET salary = (SELECT salary FROM employees e WHERE e.employee_id=w.employee_id);
解答

C、D

5.メール配信を拒否している顧客を管理する OPT_OUT_CUSTOMERS表があります。
OPT_OUT_CUSTOMERS 表に登録されている顧客をCUSTOMERS表から削除しようと考えています。なお、OPT_OUT_CUSTOMERS 表およびCUSTOMERS表の主キーはCUSTOMER_ID列
です。
次のDELETE文を確認してください

DELETE FROM customers c WHERE EXISTS (SELECT 'X' FROM OPT_OUT_CUSTOMERS WHERE c.customer_id=customer_id);

このDELETE文について正しい記述はどれですか。

A.この副問合せは、非相関副問合せである。
B.’X’を1に変えても結果は同じである。
C. 副問合せ部分は1回だけ実行される。
D.副問合せ内でcという表別名を使用しているため構文エラーとなる。

解答

B

6.複数表のINSERT文(マルチテーブル・インサート)に関して正しい記述はどれですか。

A.インサート対象として、リモート表を指定することはできない。
B.副問合せの対象として、リモート表を指定することはできない。
C.ソース表とターゲット表の列名が一致している必要がある。
D.ソース表とターゲット表の列数が一致している必要がある

解答

A

7.複数表の INSERT文(マルチテーブル・インサート)に関して正しい記述はどれですか(2つ選択してください)。

A. VALUES を指定できる。
B.副問合せから戻される各行について、常にすべてのWHEN句が評価される。
C.副問合せから戻される各行は、すべていずれかの表に挿入される。
D. INSERT ALLでWHEN 句を書かない場合、INTO 句に書いたすべての表に挿入される。

解答

A、D

8.条件付き INSERT FIRSTに関して正しい記述はどれですか。

A.副問合せによって返される各行は、複数の条件を満たしている場合、条件を満たしているすべてのターゲット表に挿入される。
B.1つのWHEN旬に対して1つのINTO 旬のみを記述できる。
C.ELSE を指定することができる。
D. WHEN OTHERS THEN旬を指定することができる。
E.副問合せから戻されたすべての行は、必ず INTO旬で指定されているいずれかの表に挿入される。

解答

C

9.複数表のINSERT文(マルチテーブル・インサート)に関して、ターゲットに挿入される行の総数と、副問合せによって返される行の数について、正しい記述はどれですか。

A.条件付き INSERT FIRSTでは、ターゲットに挿入される行の総数と副問合せによって返される行数は常に等しい。
B.条件付き INSERT FIRSTでは、ターゲットに挿入される行の総数は、副間合せによって返される行数より多いか等しくなる。
C.条件を付けないINSERT ALL では、ターゲットに挿入される行の総数と副問合せによって返される行数は常に等しい。
D.条件を付けないINSERT ALL では、ターゲットに挿入される行の総数は、副問合せによって返される行数より多いか等しくなる。

解答

D

10.ORDERS 表のデータを確認してください。

ID  CUST_ID   AMOUNT
-- --------- --------
1   301         700
2   302        1400
3   303          40

ORDERS 表と同じ表構造を持つ、ORDERS_1000表、ORDERS_500表、ORDERS_OTHERS 表があります。次のコマンドを発行しました。

INSERT FIRST            ...1行目
WHEN AMOUNT >=1000 THEN ...2行目
INTO orders_1000        ...3行目
WHEN AMOUNT >=500 THEN  ...4行目
INTO orders_500         ...5行目
ELSE                    ...6行目
INTO orders_others      ...7行目
SELECT * FROM orders;   ...8行目

正しい記述はどれですか。

A. ORDERS_500表には、ORDERS表のAMOUNT 列の値が500以上のすべてのデータがコピーされる。
B. 2行目から3行目と、4行目から5行目を入れ替えると、ORDERS:1000表に挿入される行数は0行となる。
C. 1行目のFIRST をALLに置き換えても結果は同じになる。
D. 6行目をWHEN 1=1に置き換えると、ORDERS表のすべての行が ORDERS_OTHERS 表にコピーされる。

解答

b

11.MERGE 文に関して正しい記述はどれですか。

A. WHEN MATCHED 句では、UPDATE句を省略してDELETE句を指定できる。
B.ソース行を生成する副問合せでは、複数の表を結合することができる。
C. UPDATE 句にWHERE句で条件を付けることはできない。
D. WHEN NOT MATCHED を記述する場合は、WHEN MATCHED 句を省略でき
ない。

解答

B

12.トランザクションが保証すべき ACID 特性について、正しい記述はどれですか。

A.Aは、Availabilty(可用性)のことである。
B.Cは、Confidentiality (機密性)のことである。
C.Iは、Identifiability(識別可能性)のことである。
D.Dは、Durability(永続性)のことである。

解答

D

13.トランザクションについて正しい記述はどれですか(2つ選択してください)。

A.データ操作言語(DML)文を発行すると、常に新しいトランザクションが開始される。
B.同一セッション内では、そのセッションで行ったコミットされていない変更を確認できる。
C.同じユーザーが別のセッションで行ったコミットされていない変更を確認できる。
D.デフォルトでは、SQL*PIUSをEXITコマンドで正常に終了すると、コミットされていないトランザクションは自動的にコミットされる。

解答

B、D

14.新しいトランザクションが開始され、トランザクションがアクティブ状態となっているのはどれですか(2つ選択してください)。

A. ROLLBACK文を実行した後に、同じセッションでSELECT FOR UPDATE文を実行する。
B. COMMIT 文を実行した後に、同じセッションでCREATE INDEX文を実行する。
C. SELECT文を実行した後に、同じセッションで CREATE TABLE AS SELECT文を実行する。
D. TRUNCATE文を実行した後に、同じセッションでALTER TABLE 文を実行する。
E. ALTER TABLE 文を実行した後に、同じセッションでDELETE文を実行する。

解答

A、E

15.SAVEPOINT について正しい記述はどれですか。

A. 1つのトランザクションに複数の SAVEPOINT を設定できる。
B. SAVEPOINT を設定すると、そこまでのトランザクションはコミットされる。
C. トランザクションをコミットした後、そのコミットしたトランザクションの中で設定していSAVEPOINT までロールバックできる。
D. SAVEPOINT の名前は省略できる。

解答

A

16.あるセッションで次の一連の文を実行しました。

CREATE TABLE items (item_id NUMBER(3), name VARCHAR2(40));
INSERT INTO items VALUES (1, 'Pen');
INSERT INTO items VALUES (2,'Notebook');
INSERT INTO items VALUES (3,'Eraser');
SAVEPOINT a:
INSERT INTO items VALUES (4, 'Marker');
INSERT INTO items VALUES (5, 'Pencil sharpener');
SAVEPOINT b;
UPDATE items SET name='Ballpoint pen' where item_id=1;
SAVEPOINT c;
UPDATE items set name= 'Whiteboard Marker';
ROLLBACK to c;
UPDATE items set name= 'Whiteboard Marker' WHERE item_id=4;
COMMIT;

実行後の状況について正しい記述はどれですか(2つ選択してください)。

A.3行のデータが格納されている。
B.5行のデータが格納されている。
C.item_idが1の行のname は Ballpoint pen になっている。
D.全行、name 列はWhiteboard Markerになっている。

解答

B、C

11.シーケンス、シノニムおよび索引

1.EMPLOYEES 表のDEPARTMENT_ID列とJOB_ID列にコンポジット素引(連結引)を作るコマンドとして正しいものはどれですか。

A. CREATE INDEX deptid_jobid_idx ON employees (department_id & job_id);
B. CREATE INDEX deptid_jobid_idx ON employees (department_id ||job_id);
C. CREATE INDEX deptid_jobid_id ON employees (department ic)(job _i);
D.CREATE INDEX deptid_jobid_idx ON employees (cepariment_id, job_id);
解答

D

2.索引について正しい記述はどれですか(3つ選択してください)。

A.索引を INVISIBLEに設定すると、DML実行時に対応する索引エントリに反映はされるものの、索引はオプティマイザによって使用されない。
B.索引をUNUSABLEに設定すると、DML実行時に対応する索引エントリに反映はされるものの、索引はオプティマイザによって使用されない。
C.PRIMARY KEY 制約、UNIQUE制約、FOREIGN KEY制約を定義した列には自動的に索引が作成される。
D.WHERE句で来引列を指定しても、必ずしも索引アクセスになるとは限らない。
E.索引列の列値を更新すると、自動的に索引エントリに反映される

解答

A、D、E

3.次のコマンドでシーケンスと表を作成しました。

CREATE SEQUENCE test_seq;
CREATE TABLE test (id NUMBER (3) PRIMARY KEY, time DATE DEFAULT sysdate, comments VARCHAR2(100));

このtest_seq シーケンスを用いて、test表に次々と最新のデータを挿入します。シーケンスの使い方として正しいものはどれですか。

A. INSERT INTO test (id, comments) VALUES(test_seq.newval, ‘test1’);
B. INSERT INTO test (id, comments) VALUES(test_seq.currval, ‘test1’);
C. INSERT INTO test (id, comments) VALUES(test_seq latestval, test 1);
D. INSERT INTO test (id, comments) VALUES(test_seq.nextval, test 1);

解答

D

4.次のコマンドを実行しました。

CREATE SEQUENCE transactions_seq
MAXVALUE 100000
NOCYCLE
CACHE 20;

transactions_seq シーケンスについて正しい説明はどれですか。

A. transactions_seq.nextvalを参照する度に、内部的に毎回データディクショナリヘのアクセスが発生する。
B. transactions_seq シーケンスで発番される値は一意になる。
C.1から始まり、20ずつ増えるシーケンス値が生成される。
D.transactions_seq シーケンスはセグメントを持つ。

解答

B

5.シーケンスについて正しい記述はどれですか(3つ選択してください)。

A.主キー値の生成のような、複数のセッションから一意な値を生成する必要があるとき、シーケンスを使用すると便利である。
B.インスタンス障害が発生すると、キャッシュされていた未割当てのシーケンス値が失われる。
C. トランザクションをロールバックした場合、生成されていたシーケンス値もロールバックされ、再利用できる。
D.1つのシーケンスから生成するシーケンス値を複数の表の主キー値として使用することができる。
E.オブジェクト権限が付与されていなくても、他のスキーマのシーケンスを使ってシーケンス値を発番することができる。

解答

A、B、D

6.hr.employees 表に対してempというシノニムを作成しようと思います。正しいコマンドはどれですか。

A. CREATE SYNONYM emp OF hr.employees;
B. CREATE SYNONYM emp ON hr.employees;
C. CREATE SYNONYM emp FOR hr.employees;
D. CREATE SYNONYM emp AS hr.employees;
解答

C

7.シノニムについて正しい記述はどれですか(2つ選択してください)。

A. PUBLIC シノニムの名前は、データベース内で一意である必要がある。
B. シノニムを削除すると、参照先のオプジェクトも削除される。
C.シノニムを削除するには、DROP SYNONYM文を使用する。
D.任意のユーザーがPUBLICシノニムを作成できる。

解答

A、C

12.DDLによる表の管理

1.次の文を実行しました。

CREATE TABLE emp_copy AS SELECT * FROM employees WHERE 1=0;

正しい記述はどれですか。

A.emp.copy表は空の表として作成される。
B.amp-copy表には1行だけ含まれる。
C. emp_copy 表には employees 表のPRIMARY KEY 制約のみがコピーされる。
D.emp-copy表にはemployees表のすべての制約がコピーされる。

解答

A

2.ALTER TABLE文による表の変更に関する説明として正しいものはどれですか。

あ : ALTER TABLE ADD
い: ALTER TABLE DROP
う: ALTER TABLE MODIFY
え : ALTER TABLE SET UNUSED

A.あ・・・行の追加
 い・・・表の削除
 う・・・列の追加
 え・・・読取り専用モードへの変更
B.あ・・・列の追加
 い・・・列の削除
 う・・・列の定義の変更
 え・・・列の未使用化
C.あ・・・列の追加
 い・・・表の削除
 う・・・列の定義の変更
 え・・・Oracleにはこのような操作は存在しない
D.あ・・・Oracleにはこのような操作は存在しない
 い・・・表の削除
 う・・・列の追加、および列の定義の変更
 え・・・列の未使用化

解答

B

3.DROP TABLE 文で表を削除したときに、同時に定義が削除されるものはどれですかに(2つ選択してください)。

A.その表を参照しているパブリックシノニム
B.その表に定義されていた制約
C.その表の列に定義されていた索引
D. その表を参照しているシノニム
E. その表を参照するビュー
F、その表の主キー値を生成するためのシーケンス

解答

B、C

4.次のコマンドでCUST表を作成し、データをロードしました。表構造およびデータを確認してください。

CREATE TABLE CUST
(ID NUMBER (4) PRIMARY KEY, 
NAME VARCHAR2(10) NOT NULL,
EMAIL VARCHARZ (60), 
AMOUNT NUMBER (6)) ;
Name     Null?     Type
-----  ---------  ---------------
ID     NOT NULL    NUMBER (4, 0)
NAME   NOT NULL    VARCHAR2 (10)
EMAIL              VARCHAR2 (60)   
AMOUNT             NUMBER (6, 0)

ID      NAME       EMAIL         AMOUNT
-----  ---------  ------------  ---------
1       TARO      taro@xx.com    500
2       JIRO      jiro@yy.com
3       SABU                     2500

すでに上記のデータが格納されているEMP表に対して実行できるコマンドはどれですか。

A. ALTER TABLE cust MODIFY (email VARCHAR2(5));
B. ALTER TABLE cust MODIFY (id VARCHAR2(10));
C. ALTER TABLE cust MODIFY (email DEFAULT “TBD);
D. ALTER TABLE cust ADD (status VARCHAR2(10) NOT NULL);

解答

C

5.主キー制約および外部キー制約について正しい記述はどれですか(2つ選択してください)。

A. 1つの表に設定できる外部キーは1つだけである。
B. 親表の主キー列の列名と子表の外部キー列の列名は揃える必要がある。
C. 親表の行が削除されたときに、子表の対応する行を自動的に削除するように設定することができる。
D. 親表の行が削除されたときに、子表の対応する行の外部キー列の値を自動的に、NULLに更新するように設定することができる。
E. 主キー制約と外部キー制約は、表制約構文でのみ設定できる。

解答

C、D

6.制約の有効/無効の切替えについて正しい記述はどれですか(2つ選択してください)。

A.制約を無効にすると制約に違反したデータを挿入することができる。
B.主キー制約は無効にすることができない。
C.制約を無効から有効に切り替えるとき、その表に制約違反のデータが存在する場合、デフォルトでは制約を有効に切り替えられない。
D. 無効にした制約を有効に戻すことはできない。

解答

A、C

7.次の一連のコマンドを実行して表を作成しました。

CREATE TABLE locations (location_id NUMBER(3)
CONSTRAINT location_pk PRIMARY KEY,
region VARCHAR2(20) );
CREATE TABLE dept
(dept_id NUMBER(3) CONSTRAINT dept_pk PRIMARY KEY, location_id NUMBER(3)
CONSTRAINT dept_fk REFERENCES locations (location_id) );

その後、次のコマンドを実行しました。

ALTER TABLE locations DISABLE CONSTRAINT location_pk CASCADE;
ALTER TABLE locations ENABLE CONSTRAINT location_pk;

最終的にどのような状態になっていますか(2つ選択してください)。

A. location_pk 制約は無効である。
B.dept_fk 制約は無効である。
C.location_pk 制約は有効である。
D.dept_fk 制約は有効である。

解答

B、C

8.次のコマンドを実行しました。

CREATE GLOBAL TEMPORARY TABLE temp_orders (customer_id NUMBER(4), product_id NUMBER(4),
date DATE,
quantity NUMBER (3))
ON COMMIT DELETE ROWS;

temp-orders表について正しい説明はどれですか。

A.temp_orders表を参照するヒューを作成することはできない。
B.temp_orders表に素引を作成することはできない。
C.templorders 表を参照するシノニムを作成できる。
D.DML 実行時にUNDOは生成されない。
E. 行データも表定義も、コミットのタイミングで削除される。

解答

C

9.プライベート一時表(PTT)について正しい記述はどれですか。

A.同じユーザーの別のセッションから、同一のPTTを参照できる。
B.同じユーザーの別々のセッションで、同じ名前で列定義が異なるPTTを作成できる。
C.PTTへのトランザクションではロールバックできない。
D.PTTへのトランザクションをコミットすると、常に表定義も削除される。

解答

B

10.次のコマンドを実行しました。

CREATE PRIVATE TEMPORARY TABLE ORA$PTT_SALES_REPORT (TIME_ID DATE, AMOUNT_SOLD NUMBER (10))
ON COMMIT PRESERVE DEFINITION;

正しい説明はどれですか。

A. メタデータはメモリー内に格約される。
B. 表のメタデータはデータディクショナリに格納される。
D. 他のセッションからデータを参照できる。
C. トランザクション終了時にデータが削除される。
E. 他のセッションからメタデータを参照できる。

解答

A

11.あるセッションで次の一連のコマンドを発行したところ、エラーにならずに実行されました。

...
COMMIT;
DELETE FROM employees,
CREATE TABLE customers (id NUMBER, name VARCHAR2(20));

この時の状況について正しい記述はどれですか。

A. DELETE 文についてCOMMIT を発行していないので、DELETE文は保留中の状態となっており、ロールバックすることもコミットすることも可能である。
B.DELETE文についてCOMMIT を発行していないので、DELETE文は保習中の状態となっており、ロールバックすることのみ可能である。
C. CREATE TABLE文を発行しているので、DELETE文は暗黙的にコミット済みの状態となっており、ロールバックできない。
D. CREAE TABLE文を発行しているので、DEETE 文は糖素的にロールバックされた状態となっている。

解答

C

12.次のCREATE TABLE 文のうち、構文として正しいものはどれですか(2つ選択してく ださい)。

A. CREATE TABLE students (
id NUMBER(4) PRIMARY KEY(10),
name VARCHAR2 (10) UNIQUE (name),
status CHAR CHECK (status IN (”Y',”N'))
);
B. CREATE TABLE students( 
id NUMBER (4),
name  VARCHARZ (10) UNIQUE,
status CHAR CHECK (status IN ('Y', 'N'))
PRIMARY KEY (id)
);
C.CREATE TABLE students( 
id NUMBER (4) 
name VARCHAR2(10) ,
status CHAR CHECK (status IN ('Y', 'N')), 
CONSTRAINT student_pk PRIMARY KEY (id) 
USING INDEX (CREATE UNIQUE INDEX student_pk ON students(id))); 
D. CREATE TABLE students (
id NUMBER (4) CONSTRAINT student_pk PRIMARY KEY
USING INDEX (CREATE UNIQUE INDEX student_pk) , 
name VARCHAR2(10) ,
status CHAR CHECK (status IN ('Y', 'N'))
);
解答

B、C

13.リレーショナル・データベースについて正しい記述はどれですか(2つ選択してください)。

A.主キー列の値は一意であり、NULLは1行だけ入力できる。
B.主キー列の値は一意であり、NULL 値を入力できない。
C. 主キー列は必ず1つ以上の外部キーから参照される必要がある。
D. 主キー列は外部キーから参照される場合がある。

解答

B、D

14.リレーショナル・データベースの整合性について正しい記述はどれですか(2つ選択してください)。

A. 外部キーは、主キーを参照する。
B. 外部キーは、NOT NULL 列を参照する。
C. 外部キーは、一意キーを参照する。
D. 外部キーの参照先の列は、必ずその外部キーを含む表とは別の表である必要がある。
E. 外部キーの参照先の列は、必ずその外部キーを含む表と同一の表である必要がある。

解答

A、C

15.次のコマンドを確認してください。

ALTER TABLE emp RENAME TO employees;

このコマンドについて正しい説明はどれですか。

A.表の名前をEMPLOYEES からEMPに変更するコマンドである。
B.表の名前をEMPからEMPLOYEESに変更するコマンドである。
C.表名を変更すると、オブジェクト権限を付与し直す必要がある。
D.表に1行もデータが格納されていないときのみ有効なコマンドである。

解答

B

16.CUSTOMERS 表の構造を確認してください。

Name    Null?   Type
-------  -----------  ------------
ID        NOT NULL    NUMBER (6)
NAME      NOT NULL    VARCHAR2 (30)
EMAIL                 VARCHAR2 (60)
STATUS    NOT NULL    VARCHAR2 (4)

また、DESCRIBE では表示されませんが、CUSTOMERS表には、以前、未使用に設定した列が1列、削除せずに残されています。なお、CUSTOMERS表を参照している外部キー制約はありません。
CUSTOMERS 表に対して次のコマンドを実行し、正常に実行されました。

ALTER TABLE CUSTOMERS READ ONLY;

この状態で、エラーにならずに実行可能な操作はどれですか(2つ選択してください)。

A.すでに未使用に設定されている列を削除する。
B.全行を切り捨てる。
C.STATUS列の値を更新する。
D.EMAIL列にUNIQUE 制約を追加する。

解答

A、D

17.表の管理について正しい説明はどれですか(2つ選択してください)。

A. READ ONLYに設定した表は、READ ONLYの設定を解除しない限り、DROP TABLE文で削除することができない。
B.問合せのSELECT リストにROWID を指定するとROWIDが表示されるが、ROWDという名前の列を格納しているわけではない。
C.他のスキーマの表に対してALTER TABLE文を実行するには、その表に対するALTER オブジェクト権限が必要である。
D.1列しか持たない表から、ALTER TABLE 文でその1列を削除すると、表自体が削除される。

解答

B

、C

18.列の削除および未使用列について正しい記述はどれですか。

A. ALTER TABLE …SET UNUSED・文で未使用に設定した列は、ALTER TABLE
…SETUSED.文で使用可能な期に戻せる。
B. ALTER TABLE…SET UNUSED…文を実行すると、直ちに未使用列の領域が解放される。
C. DESCRIBE コマンドで未使用に設定した列の列名を確認できる。
D.ALTER TABLE …SET UNUSED…文で列を未使用に設定すると、同じ表に対して、同じ列名を使って新しい列を追加できる。

解答

D

19.列に未使用のマークを付けるのはどのようなケースですか。

A. 一時的に特定の列を隠したいケースで未使用のマークを付け、状況が変われば未使用のマークを外す。
B.大規模な表の列を削除したいが必要な所要時間を確保できないケースで、未使用のマークを付けてその列を使えないようにする。時間を確保できるときに未使用列を削除する。
C.ある列を削除しても問題が起きないかテストしたいケースで、未使用のマークを付けてテストする。テストの結果その列が必要だった場合は、未使用のマークを外す。
D. 大量のデータをロードしたいが必要な所要時間を確保できないケースで、トリガー列や制約列に未使用のマークを付けることでデータロードの所要時間を短縮できる。データロード後、必要に応じて未使用のマークを外す。

解答

B

20.TRUNCATE と DELETEについて、それぞれ該当する説明はどれですか

あ:DML である
い:DDL である
う:ロールバックできる
え:ロールバックできない
お:大規模な表でも、高速である
か:フラッシュバック機能で元に戻せる

A. TRUNCATE … あ、え、お DELETE …い、う、か
B. TRUNCATE … い、え、お DELETE …あ、う、か
C. TRUNCATE … い、え、か DELETE …あ、う、お
D. TRUNCATE … い、う、お DELETE …あ、え、か

解答

B

21.TRUNCATE と DROP TABLEについて、それぞれ該当する説明はどれですか。

あ:表に定義されている素引は切り捨てられるが、素引定義は保持される。
い:表に定義されている素引定義は保持されるが、UNUSABLEになる。
う:ユーザーに付与されているその表のオブジェクト権限は保持される。
え:FLASHBACK TABLE TO BEFORE DROP コマンドでデータを取り戻せる可能性がある。
お:ロールバックできる。
か:表に定義されているトリガーは削除される。
き:表を参照しているビューは無効になる。

A. TRUNCATE … い、う DROP TABLE …え、き
B. TRUNCATE … い、う DROP TABLE …か、き
C. TRUNCATE … あ、う DROP TABLE …え、か
D. TRUNCATE … あ、う DROP TABLE …え、か、き

解答

D

22.TRUNCATE コマンドについて正しい記述はどれですか(2つ選択してください)。

A.REUSE STORAGE句を指定すると、表に割り当てられた領域は解放されない。
B.CASCADE句を指定すると、ON DELETE CASCADE の外部キー制約の付いた子表も切り捨てられる。
C.大規模な表をTRUNCATEコマンドで切り捨てると、UNDO セグメントを大量に
消費する。
D.索引やトリガーが定義された大規模な表の場合、TRUNCATE で切り捨てるより、DELETE で全行削除する方が高速である。

解答

A、B

23.外部表に関して正しい記述はどれですか。

A.メタデータはデータベースの外部に格納される。
B.すべてのDML を使用できる。
C.ディレクトリ・オブジェクトとそのアクセス権が必要である。
D.外部表からデータをロードするには、PL/SQLのコードを書く必要がある。

解答

C

24.外部表に関して正しい記述はどれですか。
アクセス・ドライバとして ORACLE_DATAPUMPを使用した外部表と、ORACLE_LOADER を使用した外部表について、それぞれ該当する説明はどれですか。
正しい組み合わせを選択してください。


あ:フラット・ファイルを使用する
い:バイナリのダンプ・ファイルを使用する
う:ロードを実行できる
え:アンロードを実行できる

A. ORACLE_DATAPUMP …い、う、え  ORACLE_LOADER …あ、う
B. ORACLE_DATAPUMP …あ、う、え  ORACLE_LOADER …い、う
C. ORACLE_DATAPUMP …い、う、え  ORACLE_LOADER …あ、う、え
D. ORACLE_DATAPUMP …い、う    ORACLE_LOADER …あ、う

解答

A

13.ビュー

1.ビューに関して正しい記述はどれですか(2つ選択してください)。

A.ビューはセグメントを持つ。
B.ビューはスキーマオブジェクトではない。
C.ビューの定義問合せで複数のスキーマの表を結合できる。
D.ビューの定義問合せにWHERE句が含まれているかかに関係なく、そのビューに対する問合せの中でWHERE句を使用できる。

解答

C、D

2.INSTEAD OF トリガーを定義していないビューに対するDMLについて正しい記述はどれですか (2つ選択してください)。

A. WITH READ ONLY を付けたビューは、DMLを実行できない。
B. ビューの定義問合せで参照していない列に、DEFAULT値未定義のNOT NULL制約が付いている場合ビュー経由でのINSERT は失敗する。
C. ビューの定義問合せがGROUPBYを含んでいても、このビュー経由で基になる表をUPDATE することはできる。
D. ビューの定義問合せがDISTINCTを含んでいても、このビュー経由で基になる表にINSERT を行うことはできる

解答

A、B

3.WITH CHECK OPTION を付けてビューを作成しました。このビューについて正しい説明はどれですか(2つ選択してください)。

A.このビューに対するDMLはすべて禁止される。
B. DELETE は禁止されない。
C.DELETE はすべて禁止される。
D.ビューの定義問合せに含まれない行が生成されるようなINSERT とUPDATEを禁止する。

解答

B、D

14.ユーザー、権限およびロール

1.オブジェクト権限で実行できる操作はどれですか2つ選択してください。

A. 自分のスキーマに表を作成する。
B.他のスキーマの表を更新する。
C.ユーザーを作成する。
D.他のスキーマの表に素引を作成する。
E.ロールを削除する。
F.データベースに接続する。 

解答

B、D

2.あたなたは、HRユーザーとしてデータペースに接続しています。自分のスキーマの製に、OE スキーマのCUSTOMERS表のCUST ID列を参するような外部キー制約を作成します。どのような権限が必要ですか。

A.OEスキーマのCUSTOMERS表に対するSELECT オブジェクト権限
B.OE スキーマのCUSTOMERS表に対するREFERENCES オブジェクト権限
C. ALTER TABLE システム権限
D.外部キー制約を作成するだけなのでオブジェクト権限は不要である。

解答

B

3.あなたは HRユーザーとしてデータベースに接続しています。自分のスキーマ内に、OEスキーマのCUSTOMERS 表のEMAIL列に対する索引を作成します。どのような権限が必要ですか。量も適切なものを選択してください。なお、表領域の割当ては十分に与えられているものとします。

A. CREATE INDEX システム権限
B. CREATE ANY INDEX システム権限
C.OEスキーマのCUSTOMERS表に対するSELECT権限
D.OE スキーマの CUSTOMERS 表に対する INDEX オブジェクト権限

解答

D

4.あるデータベースにSCOTT、ALLEN、 KING、MILER、 SMITH というユーザーがいます。
SCOTT ユーザーに対して、次のように権限を付与しました。

GRANT CREATE TABLE TO SCOTT WITH ADMIN OPTION;

SCOTT ユーザーが行えるコマンドはどれですか(3つ選択してください)。

A. GRANT CREATE TABLE TO KING;
B. REVOKE CREATE TABLE FROM MILLER;
C. GRANT CREATE TABLE TO ALLEN WITH ADMIN OPTION;
D. REVOKE CREATE TABLE FROM SMITH WITH ADMIN OPTION;

解答

A、B、C

5.あるデータベース上に、SCOTT、ALLEN、KING というユーザーが作成されています。
SCOTT ユーザーに対して、次のように権限を付与しました。

GRANT SELECT ON HR. EMPLOYEES TO SCOTT;

SCOTT ユーザーが行えるコマンドはどれですか(1つ選択してください)。

A. GRANT SELECT ON HR.EMPLOYEES TO KING;
B. SELECT * FROM HR.EMPLOYEES;
C. DELETE FROM HR.EMPLOYEES;
D. SELECT * FROM HR.DEPARTMENTS;

解答

B

6.オブジェクト権限の付与に関して正しい記述はどれですか。

A. オブジェクト権限を付与できるのは、GRANT ANY OBJECT PRIVILEGE システム権限を持っているユーザーのみである。
B. WITH GRANT OPTION付きでオブジェクト権限を付与すると、付与されたユーザーは、別のユーザーに対してそのオブジェクト権限を付与できる。
C.オブジェクト権限をPUBLICに対して付与することはできない。
D.列単位で指定できるのは、INDEX権限とREFERENCES権限とUPDATE権限のみである。

解答

B

7.OE_APP ユーザー、OE_MGRユーザー、KING ユーザーがいます。CUSTOMERS表はOE_APP スキーマにあります。
OE_APP ユーザーが次のコマンドを実行し、成功しました。

GRANT SELECT ON customers TO oe_mgr WITH GRANT OPTION;

OEMGRユーザーが次のコマンドを実行し、成功しました。

GRANT SELECT ON oe_app. customers TO king;

その後、方針の変更があり、OE_APP ユーザーが次のコマンドを実行しました。

REVOKE SELECT ON customers FROM oe_mgr;

どのようになりますか。

A. OE_MGRユーザーとKING ユーザーのSELECT権限が取り消される。
B. OE_MGRユーザーのSELECT 権限は取り消されるが、KINGユーザーのSELECT権限は取り消されない。
C. GRANT OPTION 付きで付与したオブジェクト権限を取り消すことはできない。
D. GRANT OPTION 付きで付与したオブジェクト権限を取り消すことができるのはGRANT ANY OBJECT PRIVILEGEシステム権限を持っているユーザーのみである。

解答

A

8.オブジェクト権限の付与について正しい記述はどれですか。

A. SELECT 権限は、シーケンスに対して付与できる。
B.INSERT権限は、表とシーケンスに対して付与できる
C.REFERENCES権限は、表に対してのみ付与できる。
D.UPDATE権限は、表に対してのみ付与できる。

解答

A

9.ADMINユーザー、HR_MGRユーザー、SCOTT ユーザーがいます。
ADMINユーザーが次のコマンドを実行し、成功しました。

GRANT CREATE TABLE TO hr_mgr WITH ADMIN OPTION;

HR_MGRユーザーが次のコマンドを実行し、成功しました。

GRANT CREATE TABLE TO scott;

その後、方針の変更があり、ADMIN ユーザーが次のコマンドを実行しました。

REVOKE CREATE TABLE FROM hr_mgr;

どのようになりますか。

A.HR MGRユーザーとSCOTTユーザーのCREATE TABLE権限が取りされる。
B.HR MGRユーザーのCREATE TABLE 権限は取り消されるが、SCOTTユーザーのCREATE TABLE 権限は取り消されない。
C. ADMIN OPTION 付きで付与したシステム権限を取り消すときは、REVOKEコマンドにも ADMIN OPTIONを付ける必要がある。
D. ADMIN OPTION付きで付与したシステム権限を取り消すときは、REVOKE コマンドに CASCADE オプションを付ける必要がある。

解答

B

10.MGR_ROLE ロールと SCOTTユーザーが定義されています。CUSTOMERSはOEスキーマの表です。
構文エラーにならずに正常に実行されるコマンドはどれですか(2つ選択してください)。


A. GRANT SELECT ON oe.customers TO PUBLIC WITH GRANT OPTION;
B. GRANT CREATE TABLE, SELECT ON oe.customers TO mgr_role;
C. GRANT SELECT ON oe.customers TO mgr_role WITH GRANT OPTION;
D. GRANT CREATE TABLE, CREATE SEQUENCE TO mgr_role, scott;

解答

A、D

15.データディクショナリビュー

1.自分のスキーマにある表の一覧を表示したいときに使用するデータ・ディクショナリ・ビューはどれですか。

A. USER_TABLES
B. ALL_TABLES
C. DBA_TABLES
D. MY_ TABLES

解答

A

2.データ・ディクショナリに関して正しい記述はどれですか。

A.データ・ディクショナリの実表は、SYSTEM スキーマにある。
B.接頭辞ALL_がつくデータ・ディクショナリ・ビューは、デフォルトではDBAのみが参照できる。
C.データ・ディクショナリはOracle Serverによって自動的に最新の状態で維持されている。
D.デフォルトでPUBLICに対して、すべてのデータ・ディクショナリ・ビューのSELECT権限が付与されている。

解答

C

16.タイムゾーンと期間

1.NIS_DATE_FORMAT が DD-MON-YYYY HH24:MI:SSに設定されているセッションの日付関数について正しい記述はどれですか(2つ選択してください)。

A SYSDATE、 CURRENT_DATE、 CURRENT_TIMESTAMPは常にすべて同じ出力となる。
B.SYSDATE はデータベースサーバーのオペレーティングシステムに設定されている現在の日付と時刻を戻す。
C. CURRENT_DATE はデータベースサーバーのオペレーティングシステムに設定されている現在の日付と時刻を戻す。
D. CURRENT_TIMESTAMP はセッションのタイムゾーンに従って、現在の日付と時刻、小数秒、タイムゾーンを戻す。

解答

B、D

2.Oracle Database のタイムゾーンについて正しい記述はどれですか。

A. DBTIMEZONEはセッションのタイムゾーンを戻す。
B. SESSIONTIMEZONEは、データベースのタイムゾーンを戻す。
C. CURRENT_TIMESTAMP は日時をセッションタイムゾーンで戻す。
D.SYSTIMESTAMP は日時をセッションタイムゾーンで戻す。

解答

C

3.サービスの使用期間に応じて使用料を計算するロジックを作ります。サービスの使用期間を格納するには、どのデータ型を使用すると便利ですか。なお、平均の使用期間は1時間31分52秒です。

A. INTERVAL YEAR TO MONTH
B. INTERVAL DAY TO SECOND
C. NUMBER
D. DATE

解答

B

4.データ型について正しい記述はどれですか。

A. TIMESTAMP WITH LOCAL TIME ZONE データ型では、タイムゾーンリージョン名もしくはタイムゾーンオフセットを含んだかたちでデータベースに格納される。
B. TIMESTAMP WITH TIME ZONE データ型では、タイムゾーンリージョン名もしくはタイムゾーンオフセットを含んだかたちでデータベースに格納される。
C. INTERVAL DAY TO SECOND データ型は24時間を超える時間隔は格納できない。
D.INTERVAL YEAR TO MONTH データ型は12か月を超える時間隔を格納できい。

解答

B

まとめ

いかがでしたか?
オラクルマスター教科書 Silver SQL Oracle Database SQLから抜粋して、問題と解答をまとめさせていただきました。詳しい解説や問題集にある総仕上げ問題をやってみたい方は、ぜひAmazon楽天市場で書籍を購入してみてくださいね!

少しでも皆さんのお力になれれば幸いです

ありがとうございました!
オラクルマスター教科書 Silver SQL Oracle Database SQL

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

バーテンダー→1部上場企業→フリーランス。フリーランスで月収100万円をかなえるために全力で駆け抜けています
実体験をもとに日々のWEB制作の記録を発信していきます
まだまだなのでご指導ご鞭撻のほどよろしくお願いいたします

コメント

コメントする

目次