ORACLE MASTER Bronze SQL基礎I 編:春のBronze実力試験(1/2 ページ)
約1年間で「Bronze SQL 基礎 I」試験を解説してきた連載「ORACLE MASTER Bronze SQL基礎I講座」。今回は総まとめとして10問の実力試験を用意した。理解度の把握と復習に役立て、合格を目指してほしい。
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で便利なオブジェクトを使いこなす」
Copyright © ITmedia, Inc. All Rights Reserved.