ORACLE MASTER Bronze SQL基礎I 編春のBronze実力試験(1/2 ページ)

約1年間で「Bronze SQL 基礎 I」試験を解説してきた連載「ORACLE MASTER Bronze SQL基礎I講座」。今回は総まとめとして10問の実力試験を用意した。理解度の把握と復習に役立て、合格を目指してほしい。

» 2006年05月12日 00時00分 公開

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

 今回は「Bronze SQL 基礎 I」の出題範囲から、模擬試験として10問を出題します。分からない問題、間違えた問題などは、連載各回のページを参考にして復習してください。それでは問題に挑戦してみましょう。

問題1

選択を表す図を選択しなさい。

a.

b.

c.

d.

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

問題2

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

SELECT * FROM emp WHERE deptno IN (10,30);

この文と同じ結果を求めている文を選択しなさい。

a.SELECT * FROM emp WHERE deptno!=10 OR deptno!=30;

b.SELECT * FROM emp WHERE deptno!=10 AND deptno!=30;

c.SELECT * FROM emp WHERE deptno=10 OR deptno=30;

d.SELECT * FROM emp WHERE deptno=10 AND deptno=30;

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

問題3

文字データをすべて小文字に変換するために使用できる関数を選択しなさい。

a.LOWER

b.UPPER

c.INSTR

d.INITCAP

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

問題4

実行するとエラーとなる文を選択しなさい。なお、emp表のhiredate列は日付データ型の列とします。

a.SELECT TO_CHAR(hiredate, 'YYYY-MM-DD') FROM emp;

b.SELECT TO_NUMBER(TO_CHAR(hiredate, 'YYYY')) FROM emp;

c.SELECT SYSDATE - hiredate FROM emp;

d.SELECT SYSDATE + hiredate FROM emp;

ヒント:SQLで使える関数の基礎知識
    「SQLの関数を使いこなす

問題5

SMITHユーザーが所属している部門の数を求めている文を選択しなさい。

a.SELECT COUNT(DISTINCT deptno) FROM emp WHERE ename = 'SMITH';

b.SELECT DISTINCT(COUNT deptno) FROM emp WHERE ename = 'SMITH';

c.SELECT DISTINCT(COUNT(deptno)) FROM emp WHERE ename = 'SMITH';

d.SELECT COUNT(deptno) FROM emp WHERE ename = 'SMITH';

ヒント:SQLの関数でデータを集計する

問題6

EMP表とDEPT表を結合している文として実行するとエラーとなるものを選択しなさい。なお、2つの表において、deptno列は同じデータ型で存在しているものとします。

a.SELECT empno,ename,dname FROM emp RIGHT OUTER JOIN dept ON (emp.deptno = dept.deptno);

b.SELECT empno,ename,dname FROM emp JOIN dept ON (emp.deptno = dept.deptno);

c.SELECT empno,ename,dname FROM emp NATURAL JOIN dept;

d.SELECT empno,ename,dname FROM emp JOIN dept USING(d.deptno);

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

問題7

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

EMPNO ENAME        SAL DEPTNO
----- ---------- ----- ------
100 Smith        800     20
101 Allen       1600     30
102 Ward        1250     30
103 Jones       2975     20
104 Smith       1250     30
105 Blake       2850     30
106 Clark       2450     10
107 Scott       3000     20

次のSELECT文の結果として正しいものを選択しなさい。

SELECT ename FROM employees
WHERE sal = (SELECT sal FROM employees WHERE ename = 'Smith');

a.レコードが戻されない

b.エラーとなる

c.1行のレコードが戻される

d.すべてのレコードが戻される

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

問題8

複数行を戻す副問い合わせでは使用できない演算子を選択しなさい。

a.ALL

b.ANY

c.=

d.IN

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

問題9

次のトランザクションを確認してください。

(1)INSERT INTO emp...;
(2)UPDATE emp...;
SAVEPOINT a;
(3)INSERT INTO emp...;
ROLLBACK a;
COMMIT;

最終的にCOMMITされたものを選択しなさい。

a.1つもない

b.(1)(2)

c.(1)(2)(3)

d.(3)のみ

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

問題10

NOT NULL制約に関する説明として正しいものを2つ選択しなさい。

a.NULL値の格納を禁止する

b.NULL値とゼロの格納を禁止する

c.列制約構文でのみ宣言できる

d.列制約構文または表制約構文で宣言できる

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

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。