Oracle Master Silver SQL サンプル問題×20問

  • URLをコピーしました!
OracleMaster SampleQuestions
目次

サンプル問題

1.Oracle Databaseとの接続を終了するコマンドはどれですか。
  • A. DESCRIBE
  • B. EXIT
  • C. SET
  • D. SHUTDOWN
正解はこちら

正解はBです。

  • DESCRIBE(‘DESC’と省略可能)は、表の列名、NOT NULL制約、列のデータ型を確認するコマンドです。
  • Oracle Databaseとの接続を終了するコマンドはEXITです。
  • SETは、現行のセッションに対するSQL*Plusシステム変数を変更するコマンドです。
  • SHUTDOWNは、インスタンス(Oracle Database本体のイメージ)を停止するコマンドです。SYSDBA権限を持つユーザは接続が終了しません。
2.DML(データ操作)に含まれないSQL文はどれですか。
  • A. UPDATE
  • B. ALTER
  • C. DELETE
  • D. INSERT
正解はこちら

正解はBです。

SQL分類主なコマンド
DMLINSERT / UPDATE / DELETE / MERGE
DDLCREATE / ALTER / DROP / TRUNCATE
トランザクション制御COMMIT / ROLLBACK
3.サイズ指定が必須なデータ型はどれですか。
  • A. NUMBER
  • B. CHAR
  • C. VARCHAR2
  • D. DATE
  • E. RAW
正解はこちら

正解はC,Eです。

VARCHAR2(size)RAW(size) はサイズ指定が必須です。

NUMBERとCHARは省略してもエラーになりません。DATEはサイズ指定しません。

4.以下のSQL文で、どのような結果が返されますか。
SELECT LOWER('DBExamLab') FROM dual;
  • A. DBExamLab
  • B. DBEXAMLAB
  • C. Dbexamlab
  • D. dbexamlab
正解はこちら

正解はDです。

LOWER(string)は、string文字列を小文字に変換するファンクションです。

SELECT LOWER('DBExamLab') FROM dual;
dbexamlab
5.以下のSQL文で、どのような結果が返されますか。
SELECT UPPER(SUBSTR('DatabaseExamLab',9)) FROM dual;
  • A. ExamLab
  • B. examlab
  • C. EXAMLAB
  • D. Database
  • E. DATABASE
  • F. DATABASEE
正解はこちら

正解はCです。

UPPER(string)は、string文字列を大文字に変換するファンクションです。

また、SUBSTR(string,size,[,length])は、string文字列をsize文字目からlength文字数分だけを切り取るファンクションです。

SELECT UPPER(SUBSTR('DatabaseExamLab',9)) FROM dual;
EXAMLAB
6.以下のSQL文で、どのような結果が返されますか。
  • A. Database
  • B. eExamLab
  • C. ExamLab+
  • D. エラー
正解はこちら

正解はAです。

RPAD(string,length[,padding])は、string文字列の文字数をlength文字数になるように、右側にpadding文字列を埋め込むファンクションです。

しかし、今回はstring文字列の文字数がlength文字数より小さいため、左側からstring文字列をlengh文字数分だけを切り取ります。

SELECT RPAD('DatabaseExamLab',8,'+') FROM dual;
Database

ちなみに、LPAD(string,length[,padding])と同様の結果になります。

SELECT LPAD('DatabaseExamLab',8,'+') FROM dual;
Database
7.以下のSQL文で、結果が「2025-01-01 15:30:45」の形式で表示するために設定すべき初期化パラメータはどれですか。
SELECT SYSDATE FROM dual;
2025-01-01 15:30:45
  • A. NLS_TIME_FORMAT
  • B. NLS_DATE_FORMAT
  • C. NLS_TIMESTAMP_FORMAT
  • D. NLS_TIMESTAMP_TZ_FORMAT
正解はこちら

正解はBです。

NLS_DATE_FORMATはDATE型のフォーマットを設定します。SYSDATEは、データベースサーバのタイムゾーンを基準とした日時データをDATE型で取得するファンクションです。

SHOW PARAMTER NLS_DATE_FORMAT
YYYY-MM-DD HH:MI:SS
8.以下のSQL文で、どのような結果が返されますか。
SELECT COALESCE(NULL,NULL,3,TO_NUMBER('4'),5,6,7) FROM dual;
  • A. エラー
  • B. NULL
  • C. 3
  • D. 4
  • E. 5
正解はこちら

正解はCです。

COALESCE(val1,val2,val3…valN)は、複数の値の中で、最初の非NULL値を取得するファンクションです。

COALESCEのvalは全て同一データ型である必要があるが、今回はTO_NUMBERで文字型を数値型に変換していて、全て数値型のデータになるためエラーになりません。

SELECT COALESCE(NULL,NULL,3,TO_NUMBER('4'),5,6,7) FROM dual;
3
9.表レベルで指定することができる制約はどれですか。
  • A. NOT NULL制約
  • B. CHECK制約
  • C. UNIQUE制約
  • D. PRIMARY KEY制約
  • E. FOREIGN KEY制約
正解はこちら

正解はB,C,D,Eです。

NOT NULL制約のみが表レベルでの指定ができません。

制約名列レベル表レベル
NOT NULL制約
CHECK制約
UNIQUE制約
PRIMARY KEY制約
FOREIGN KEY制約
10.以下のSQL文で、どのような結果が返されますか。
SELECT AVG(salary) FROM employees;
  • A. 従業員の給与の合計
  • B. 従業員の平均給与
  • C. 従業員の最高給与
  • D. 従業員の最低給与
正解はこちら

正解はBです。

AVG関数は、指定したカラムの平均値を返す集計ファンクションです。

11.以下のSQL文で、どのような結果が返されますか。
SELECT department_id, MAX(salary) FROM employees;
  • A. 全従業員の最高給与
  • B. 部署ごとの最高給与
  • C. 従業員数ごとの最高給与
  • D. エラー
正解はこちら

正解はDです。

GROUP BYと集計ファンクションを使用する場合は、集計ファンクション以外(今回の場合はdepartment_id)をGROUP BYで指定する必要があります。

12.トランザクションの終了する条件はどれですか。
  • A. COMMIT
  • B. EXIT
  • C. ROLLBACK SAVEPOINT句なし
  • D. CREATE
  • E. ROLLBACK SAVEPOINT句あり
正解はこちら

正解はA,B,C,Dです。

トランザクションが終了する条件として、COMMIT文やROLLBACK文(SAVEPOINT句なし)、EXIT文が正常に実行された時になります。また、DDL(CREATE,DROP,ALTER)などが実行された時になります。

13.以下のSQL文で、何件のデータが返されますか。
SELECT UPPER('a'), 100 FROM dual
UNION
SELECT 'A', ROUND(TRUNC(101,-1)) FROM dual
UNION
SELECT INITCAP('a'), MOD(1100,1000) FROM dual;
  • A. 0件
  • B. 1件
  • C. 2件
  • D. 3件
  • E. エラー
正解はこちら

正解はBです。

UNION は重複を自動的に削除するため、「A 100」が 3 回出力されても 最終的には 1 件のみが結果として返される ことになります。

SELECT UPPER('a'), 100 FROM dual
UNION
SELECT 'A', ROUND(TRUNC(101,-1)) FROM dual
UNION
SELECT INITCAP('a'), MOD(1100,1000) FROM dual;

A 100
14.以下の実行結果を表示するためのSQL文はどれですか。
?

ORACLE DATABASE's BEST DATASE
  • A. SELECT ‘ORACLE DATABASE’s BEST DATABASE’ FROM dual;
  • B. SELECT ‘ORACLE DATABASE”s BEST DATABASE’ FROM dual;
  • C. SELECT q'(ORACLE DATABASE’s BEST DATABASE)’ FROM dual;
  • D. SELECT q’AORACLE DATABASE’s BEST DATABASEA’ FROM dual;
正解はこちら

正解はB,C,Dです。

一重引用符を含んだ文字リテラルを表記する場合は、一重引用符を2つ続けて記載するか、q'<任意の文字>文字リテラル<任意の文字>’になります。

15.一意索引が自動的に作成される制約はどれですか。
  • A. NOT NULL制約
  • B. CHECK制約
  • C. UNIQUE制約
  • D. PRIMARY KEY制約
  • E. FOREIGN KEY制約
正解はこちら

正解はC,Dです。

一意性を保証した列のみに、自動的に一意索引が作成されます。一意性を保証できる制約は、UNIQUE制約とPRIMARY KEY制約になります。

16.以下のSQL文の結果として正しいものはどれですか。
SELECT employee_id, salary FROM employees 
 WHERE salary > (SELECT AVG(salary) FROM employees);
  • A. 全従業員の給与
  • B. 平均給与以上の従業員リスト
  • C. 平均給与以下の従業員リスト
  • D. 最低給与の従業員リスト
正解はこちら

正解はC,Eです。

副問合せで全従業員の平均給与を算出した上で、それより高い給与を持つ従業員を抽出しています。

17.以下のSQL文の実行結果として正しいものはどれですか。
SELECT employee_id, department_id FROM employees e 
 WHERE salary > (
  SELECT AVG(salary) FROM employees d WHERE
   d.department_id = e.department_id
 )
;
  • A. 全従業員のリスト
  • B. 同じ部署で最高給与の従業員リスト
  • C. 同じ部署で平均給与以上の従業員リスト
  • D. 同じ部署で平均給与以下の従業員リスト
正解はこちら

正解はCです。

相関副問合せで同じ部署内の平均給与を算出した上で、それより高い給与を持つ従業員を抽出しています。

18.以下のSQL文の実行結果として正しいものはどれですか。
  • A. 全従業員リスト
  • B. 東京部署の従業員リスト
  • C. 東京の各部署で最も給与が高い従業員リスト
  • D. 東京の各部署か最も給与が高い従業員リスト
SELECT employee_id, salary, department_id FROM employees e
 WHERE department_id IN (
  SELECT department_id FROM departments WHERE location_name = 'TOKYO'
 )
 AND salary = (
  SELECT MAX(salary) FROM employees es 
   WHERE es.department_id = e.department_id
 )
;
正解はこちら

正解はCです。

相関副問合せで東京にある部署IDを抽出し、その部署IDごとに最も給与が高い従業員を抽出しています。

19.以下のSQL文でエラーにならないのどれですか。※SQL文内のオブジェクトとユーザは全て存在すると仮定する。
  • A. GRANT SELECT ON user1.sequence1 TO user2
  • B. GRANT NEXTVAL ON user1.sequence1 TO user2
  • C. GRANT SELECT FOR UPDATE ON user1.table1 TO user2
  • D. GRANT SELECT ON user1.table1 TO user2
正解はこちら

正解はA,Dです。

NETVAL,SELECT FOR UPDATEというオブジェクト権限は存在しません。テーブルのオブジェクト権限SELECTは、SELECT文とSELECT FOR UPDATE文の使用を含みます。シーケンスのオブジェクト権限SELECTは、CURRVALとNEXTVALの使用を含みます。

20.読み取り専用モードの表に対して、許可されている操作はどれですか。
ALTER TABLE <表名> READ ONLY
  • A. SELECT
  • B. SELECT FOR UPDATE
  • C. TRUNCATE TABLE
  • D. ALTER TABLE ADD
正解はこちら

正解はA,Dです。

読み取り専用モードにすると、表データの変更は実行できなくなります。しかし、TRUNCATEを除く一部のDDLやSELECTは実行できます。

合格のための勉強方法

オラクル認定資格制度の1つである”ORACLE MASTER SQL 2019”を受験し合格することができました!

僕は偏差値40で情報系Fラン大学に通っていて、実務経験はなしの、どこにでもいる大学生です。

以下の記事では、ORACLE MASTER Silver SQL 2019を今後受験する人たちに、試験合格者がどういった勉強法をしてきたかを紹介していきます。

あわせて読みたい
偏差値40が実務経験なしでORACLE MASTER Silver SQLに合格した勉強方法|合格体験記 オラクル認定資格制度の1つである”ORACLE MASTER SQL 2019”を受験し合格することができました! 僕は偏差値40で情報系Fラン大学に通っていて、実務経験はなしの、どこに...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

情報系Fラン大学出身・新卒未経験からデータベースエンジニアに転身。
使用技術:Oracle|TypeScript
資格取得:情報処理安全確保支援士試験|応用情報技術者試験|OracleMaster Gold DBA|OCI Architect Associate

目次