実力試験・2006年秋編! ORACLE MASTER Bronze SQL基礎I

実力試験・2006年秋編!
ORACLE MASTER Bronze SQL基礎I

有限会社 G.F.インフィニティ (Project - ∞)
2006/10/21

連載「ORACLE MASTER Bronze SQL基礎I講座」および「春のBronze実力試験 ORACLE MASTER Bronze SQL基礎I編」に続き、秋の実力試験開催! 各分野の理解度チェックに役立てば幸いだ。

 2005年5月〜2006年4月の12カ月間連載していた「ORACLE MASTER Bronze SQL基礎I講座」。ORACLE MASTERの最も基礎的な資格である「ORACLE MASTER Bronze Oracle Database 10g」の取得に必要な試験の1つを解説してきました。

 2006年5月の「春のBronze実力試験 ORACLE MASTER Bronze SQL基礎I 編」に引き続き、今回は秋編として「Bronze SQL 基礎 I」の出題範囲から10問を出題します。分からない問題、間違えた問題などは、連載各回のページを参考にして復習してください。

 それでは、挑戦してみましょう!

  問題1

問い合わせ結果を「TABLE」という見出しで表示する方法として正しい文を選択しなさい。

  1. SELECT col1 TABLE FROM tab1;
  2. SELECT col1 'TABLE' FROM tab1;
  3. SELECT col1 AS TABLE FROM tab1;
  4. SELECT col1 "TABLE" FROM tab1;

ヒント:Oracleで使うSQLの基礎を学ぶ

   解答・解説へ


  問題2

次のデータを確認してください。

 EMPNO ENAME      JOB         MGR HIREDATE        SAL       COMM DEPTNO
------ ---------- --------- ----- -------- ---------- ---------- ------
  7369 SMITH      CLERK      7902 80-12-17        800                20
  7499 ALLEN      SALESMAN   7698 81-02-20       1600        300     30
  7521 WARD       SALESMAN   7698 81-02-22       1250        500     30
  7566 JONES      MANAGER    7839 81-04-02       2975                20
  7654 MARTIN     SALESMAN   7698 81-09-28       1250       1400     30
  7698 BLAKE      MANAGER    7839 81-05-01       2850                30
  7782 CLARK      MANAGER    7839 81-06-09       2450                10
  7788 SCOTT      ANALYST    7566 87-04-19       3000                20
  7839 KING       PRESIDENT       81-11-17       5000                10
  7844 TURNER     SALESMAN   7698 81-09-08       1500          0     30
  7876 ADAMS      CLERK      7788 87-05-23       1100                20
  7900 JAMES      CLERK      7698 81-12-03        950                30
  7902 FORD       ANALYST    7566 81-12-03       3000                20
  7934 MILLER     CLERK      7782 82-01-23       1300                10

このデータから次の結果を取り出している文を選択しなさい。

 EMPNO ENAME      JOB         MGR HIREDATE        SAL       COMM DEPTNO
------ ---------- --------- ----- -------- ---------- ---------- ------
  7934 MILLER     CLERK      7782 82-01-23       1300                10
  1. SELECT * FROM emp WHERE deptno = 10 AND hiredate > '1982-01-01' OR job = 'CLERK';
  2. SELECT * FROM emp WHERE (deptno = 10 AND hiredate > '1982-01-01' OR job = 'CLERK');
  3. SELECT * FROM emp WHERE deptno = 10 AND (hiredate > '1982-01-01' OR job = 'CLERK');
  4. SELECT * FROM emp WHERE (deptno = 10 AND hiredate > '1982-01-01') OR job = 'CLERK';

ヒント:SQL問い合わせによる行の制限とソート

   解答・解説へ


  問題3

「XYZ」という値を「xxXYZ」という結果として表示している文を選択しなさい。

  1. SELECT RPAD('XYZ',5,'x') FROM dual;
  2. SELECT LPAD('XYZ',5,'x') FROM dual;
  3. SELECT RTRIM('XYZ','x') FROM dual;
  4. SELECT LTRIM('XYZ','x') FROM dual;

ヒント:SQLで使える関数の基礎知識

   解答・解説へ


  問題4

現在2006年10月20日(金)です。翌週の月曜日として「10月23日」という結果を戻す文を選択しなさい。

  1. SELECT TO_CHAR(NEXT_DAY(SYSDATE,'月曜日'),'MM"月"DD"日"') FROM dual;
  2. SELECT TO_DATE(NEXT_DAY(SYSDATE,'月曜日'),'MM"月"DD"日"') FROM dual;
  3. SELECT TO_CHAR(LAST_DAY(SYSDATE,'月曜日'),'MM"月"DD"日"') FROM dual;
  4. SELECT TO_DATE(LAST_DAY(SYSDATE,'月曜日'),'MM"月"DD"日"') FROM dual;

ヒント:SQLで使える関数の基礎知識

   解答・解説へ


  問題5

次のデータを確認してください。

SQL> SELECT * FROM dept;

DEPTNO DNAME           MGR_ID LOCATION_ID
------ --------------- ------ -----------
    10 Administration     200        1700
    20 Marketing          201        1800
    60 IT                 103        1400
    90 Executive          100        1700
   100 Finance            108        1700
   110 Accounting         205        1700
	
SQL> SELECT * FROM emp;

 EMPNO ENAME      SALARY MGR_ID DEPTNO
------ ---------- ------ ------ ------
   200 Jennifer     4400    101     10
   201 Michael     13000    100     20
   202 Pat          6000    201     20
   203 Susan        6500    101     40
   204 Hermann     10000    101     70
   205 Shelley     12000    101    110
   206 William      8300    205    110

次の文によって戻るデータを選択しなさい。

SELECT * FROM emp NATURAL JOIN dept;
1.
DEPTNO  EMPNO ENAME      SALARY MGR_ID DNAME           MGR_ID LOCATION_ID
------ ------ ---------- ------ ------ --------------- ------ -----------
    10    200 Jennifer     4400    101 Administration     200        1700
    20    201 Michael     13000    100 Marketing          201        1800
    20    202 Pat          6000    201 Marketing          201        1800
   110    205 Shelley     12000    101 Accounting         205        1700
   110    206 William      8300    205 Accounting         205        1700

2.
MGR_ID  EMPNO ENAME      SALARY DEPTNO DEPTNO DNAME           LOCATION_ID
------ ------ ---------- ------ ------ ------ --------------- -----------
   100    201 Michael     13000     20     90 Executive              1700
   201    202 Pat          6000     20     20 Marketing              1800
   205    206 William      8300    110    110 Accounting             1700

3.
MGR_ID DEPTNO  EMPNO ENAME      SALARY DNAME           LOCATION_ID
------ ------ ------ ---------- ------ --------------- -----------
   201     20    202 Pat          6000 Marketing              1800
   205    110    206 William      8300 Accounting             1700

4.
 EMPNO ENAME      SALARY MGR_ID DEPTNO DEPTNO DNAME           MGR_ID LOCATION_ID
------ ---------- ------ ------ ------ ------ --------------- ------ -----------
   200 Jennifer     4400    101     10     10 Administration     200        1700
   200 Jennifer     4400    101     10     20 Marketing          201        1800
   200 Jennifer     4400    101     10     60 IT                 103        1400
   200 Jennifer     4400    101     10     90 Executive          100        1700
   200 Jennifer     4400    101     10    100 Finance            108        1700
   200 Jennifer     4400    101     10    110 Accounting         205        1700
   201 Michael     13000    100     20     10 Administration     200        1700
   201 Michael     13000    100     20     20 Marketing          201        1800
   201 Michael     13000    100     20     60 IT                 103        1400
   201 Michael     13000    100     20     90 Executive          100        1700
   201 Michael     13000    100     20    100 Finance            108        1700
   201 Michael     13000    100     20    110 Accounting         205        1700
   202 Pat          6000    201     20     10 Administration     200        1700
   202 Pat          6000    201     20     20 Marketing          201        1800
   202 Pat          6000    201     20     60 IT                 103        1400
   202 Pat          6000    201     20     90 Executive          100        1700
   202 Pat          6000    201     20    100 Finance            108        1700
   202 Pat          6000    201     20    110 Accounting         205        1700
   203 Susan        6500    101     40     10 Administration     200        1700
   203 Susan        6500    101     40     20 Marketing          201        1800
   203 Susan        6500    101     40     60 IT                 103        1400
   203 Susan        6500    101     40     90 Executive          100        1700
   203 Susan        6500    101     40    100 Finance            108        1700
   203 Susan        6500    101     40    110 Accounting         205        1700
   204 Hermann     10000    101     70     10 Administration     200        1700
   204 Hermann     10000    101     70     20 Marketing          201        1800
   204 Hermann     10000    101     70     60 IT                 103        1400
   204 Hermann     10000    101     70     90 Executive          100        1700
   204 Hermann     10000    101     70    100 Finance            108        1700
   204 Hermann     10000    101     70    110 Accounting         205        1700
   205 Shelley     12000    101    110     10 Administration     200        1700
   205 Shelley     12000    101    110     20 Marketing          201        1800
   205 Shelley     12000    101    110     60 IT                 103        1400
   205 Shelley     12000    101    110     90 Executive          100        1700
   205 Shelley     12000    101    110    100 Finance            108        1700
   205 Shelley     12000    101    110    110 Accounting         205        1700
   206 William      8300    205    110     10 Administration     200        1700
   206 William      8300    205    110     20 Marketing          201        1800
   206 William      8300    205    110     60 IT                 103        1400
   206 William      8300    205    110     90 Executive          100        1700
   206 William      8300    205    110    100 Finance            108        1700
   206 William      8300    205    110    110 Accounting         205        1700

ヒント:SQLで複数の表からデータを取り出す

   解答・解説へ


  問題6

次のデータを確認してください。

SQL> SELECT * FROM emp;

 EMPNO ENAME      SALARY MGR_ID DEPTNO
------ ---------- ------ ------ ------
   200 Jennifer     4400    101     10
   201 Michael     13000    100     20
   202 Pat          6000    201     20
   203 Susan        6500    101     40
   204 Hermann     10000    101     70
   205 Shelley     12000    101    110
   206 William      8300    205    110

次の結果を取得している文を選択しなさい。

 EMPNO ENAME      SALARY MGR_ID DEPTNO
------ ---------- ------ ------ ------
   201 Michael     13000    100     20
   205 Shelley     12000    101    110
   204 Hermann     10000    101     70
  1. SELECT * FROM emp WHERE rownum<=3 ORDER BY salary;
  2. SELECT * FROM emp WHERE rownum<=3 ORDER BY salary DESC;
  3. SELECT * FROM (SELECT * FROM emp ORDER BY salary) WHERE rownum<=3;
  4. SELECT * FROM (SELECT * FROM emp ORDER BY salary DESC) WHERE rownum<=3;

ヒント:副問い合わせの構文を覚える

   解答・解説へ


  問題7

次のデータを確認してください。

SQL> SELECT * FROM tab1;

  COL1 COL2
------ -----
     1 A
     2 B
     3 C

SQL> SELECT * FROM tab2;

  COL1 COL2
------ -----
     1 A
     4 D
     3 C

次の文によって戻るデータを選択しなさい。

1.
  COL1 COL2
------ -----
     2 B

2.
  COL1 COL2
------ -----
     1 A
     3 C

3.
  COL1 COL2
------ -----
     1 A
     2 B
     3 C
     4 D

4.
  COL1 COL2
------ -----
     1 A
     2 B
     3 C
     1 A
     4 D
     3 C

ヒント:副問い合わせの構文を覚える

   解答・解説へ


  問題8

トランザクションに関する説明として正しいものを選択しなさい。

  1. あるトランザクションで変更中のデータをほかのトランザクションから参照することができる
  2. データを変更すると「REDOブロック」と呼ばれる変更前のイメージが保存される
  3. セーブポイントを使用することで、トランザクションの一部のみロールバックすることができる
  4. トランザクションは、COMMIT、ROLLBACKでのみ終了する

ヒント:SQLでデータを自在に操作する

   解答・解説へ


  問題9

オブジェクトに関する説明として正しいものを2つ選択しなさい。

  1. 問い合わせのパフォーマンスを向上させるには、シノニムを作成する
  2. 単純なビューであれば、ビューを経由して基礎となる表を更新することも可能である
  3. 大規模な表から非常に少ない行を取得するのが頻繁に行われる表に索引を作成するのが適切である
  4. ビューを作成するには、必ず基礎となる表が必要である
  5. 順序を使用することで常に一意で連続した番号を生成できる
ヒント:

SQLで表のデータを制限する
SQLで便利なオブジェクトを使いこなす

   解答・解説へ


  問題10

次のSELECT文を使用した適切なビューの作成を行っているものを選択しなさい。

SELECT empno, ename, salary, salary * 12 FROM emp;
  1. CREATE VIEW v_emp AS SELECT empno, ename, salary, salary * 12 yeas_sal FROM emp;
  2. CREATE VIEW v_emp AS SELECT empno, ename, salary, salary * 12 FROM emp;
  3. CREATE VIEW v_emp ON SELECT empno, ename, salary, salary * 12 yeas_sal FROM emp;
  4. CREATE VIEW v_emp ON SELECT empno, ename, salary, salary * 12 FROM emp;

ヒント:SQLで便利なオブジェクトを使いこなす

   解答・解説へ

IT資格試験の模擬問題をWebベースで学習できる@IT自分戦略研究所の新サービス「@IT資格攻略」では、Bronze SQL 基礎 IをはじめOracle関連の資格をテーマとして取り上げています。Bronze DBA 10gも近日中に追加予定です。「無料お試し版」もありますので、記事と併せてご覧ください。

自分戦略研究所、フォーラム化のお知らせ

@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。

現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。

これからも、@IT自分戦略研究所をよろしくお願いいたします。