@IT自分戦略研究所 - スキルとキャリアをじっくり考えたいITエンジニアのために @IT@IT情報マネジメント@IT MONOist@IT自分戦略研究所JOB@ITITmediaTechTarget

@IT > PR:ORACLE MASTERから見えるエンジニアのスキルパス
自分戦略研究所 | 自分戦略研究室 | キャリア実現研究室 | スキル創造研究室 | コミュニティ活動支援室 | エンジニアライフ | ITトレメ | 転職サーチ | 派遣Plus |
  企画:アットマーク・アイティ人財局
制作:アットマーク・アイティ編集局

{掲載内容有効期限:2004年8月31日

 

ORACLE MASTERから見えるエンジニアのスキルパス

Oracle Database 10gの速習方法
ORACLE MASTERから見えるエンジニアのスキルパス
Bronze SQL基礎 I想定問題

【問題1】
SELECT order_id "Order Number", product_id "Product", quantity "Quantity"
FROM line_item
WHERE Order Number = 5570
ORDER BY "Order Number";

この文は実行するとエラーになります。解決するにはどうすればよいですか。

【選択肢】
A:WHERE句で列別名ではなく列名を使用する。
B:ORDER BY句で列別名ではなく列名を使用する。
C:ORDER BY句にASCキーワードまたはDESCキーワードを指定する。
D:列別名の二重引用符をすべて単一引用符にする。

【問題2】
EMPLOYEES表には以下の列が含まれています。

EMPLOYEES
-------------------------------------------
LAST_NAME   VARCHAR2(25)   NOT NULL
SALARY   NUMBER(8,2)   NOT NULL
COMMISSION_PCT NUMBER(2,2)

全社員について、歩合給(SALARY列の値にCOMMISSION_PCT列の値を掛けたもの)を 計算する必要があります。全社員の歩合給を数値で表示する文はどれですか。

【選択肢】
A:SELECT last_name, salary*NULL(commission_pct,0) FROM employees;
B:SELECT last_name, salary*commission_pct FROM employees;
C:SELECT last_name, salary*(NVL(commission_pct,0)) FROM employees;
D:SELECT last_name, salary*(DECODE(commission_pct,0)) FROM employees;

【問題3】
INVENTORY表には次の列が含まれています。

ID_NUMBER   NUMBER   主キー
DESCRIPTION   VARCHAR2(30)
SUPPLIER_ID   NUMBER
PRICE      NUMBER(7,2)
QUANTITY    NUMBER

次のSQL文を実行しました。

SELECT id_number, description, SUM(price)
FROM inventory
WHERE price > 30.00
GROUP BY id_number
ORDER BY supplier_id;

この文でエラーが発生する理由として正しいものはどれですか。

【選択肢】
A:DESCRIPTION列とSUPPLIER_ID列がGROUP BY句に含まれていない。
B:PRICE列をGROUP BY句で指定する必要がある。
C:SUPPLIER_ID列がSELECT句に含まれていない。
D:ORDER BY句はGROUP BY句のあるSELECT文では使用できない。
E:ORDER BY句はWHERE句のすぐ後になければならない。

【問題4】
貸付限度額(CREDIT_LIMIT)が全顧客の平均よりも高い顧客を検索したいと思います。どのSELECT文を使用すればよいですか。
【選択肢】
A:SELECT last_name, first_name
 FROM customer
 WHERE credit_limit > (SELECT AVG(credit_limit) FROM customer);
B:SELECT last_name, first_name, AVG(credit_limit)
 FROM customer
 GROUP BY AVG(credit_limit)
 HAVING credit_limit > AVG(credit_limit);
C:SELECT last_name, first_name
 FROM customer
 WHERE credit_limit > AVG(credit_limit);
D:SELECT last_name, first_name
 FROM customer
 WHERE credit_limit = (SELECT AVG(credit_limit) FROM customer);
E:SELECT last_name, first_name, AVG(credit_limit)
 FROM customer
 GROUP BY AVG(credit_limit);

【問題5】
PRODUCT表のPRODUCT_NAME列の既存のデータを更新するために使用できるDMLはどれですか。2つ選択してください。
【選択肢】
A:MODIFY
B:ALTER
C:MERGE
D:UPDATE
E:COMMIT
F:INSERT

 


 

Copyright © ITmedia, Inc. All Rights Reserved.