←ホームへ戻る




問1 ..................................................................................................

以下の SQL文について、正しい列別名を指定しているものを2つ選びなさい。

SELECT empno, ename, sal*2 FROM emp;

a.SELECT empno, ename, sal*2 INCENTIVE BONUS FROM emp;
b.SELECT empno, ename, sal*2 "INCENTIVE BONUS" FROM emp;
c.SELECT empno, ename, sal*2 OF "INCENTIVE BONUS" FROM emp;
d.SELECT empno, ename, sal*2 AS "INCENTIVE BONUS" FROM emp;
e.SELECT empno, ename, sal*2 'INCENTIVE BONUS' FROM emp;
      

→回答と解説



問2 ..................................................................................................

以下の SQL文はエラーとなります。誤っている部分を選びなさい。

SELECT emp.ename, bonus.sal
FROM emp e, bonus b
WHERE e.ename = b.ename
ORDER BY 1;

a.SELECT emp.ename, bonus.sal
b.FROM emp e, bonus b
c.WHERE e.ename = b.ename
d.ORDER BY 1;
      

→回答と解説



問3 ..................................................................................................

下記の DDL文にて、順序を作成しました。生成される順序値のうち、10個目
の値として正しいものを選びなさい。

CREATE SEQUENCE seq_empno START WITH 100
INCREMENT BY 10 MAXVALUE 150 CYCLE NOCACHE;

a.190
b.110
c.130
d.31
e.30
      

→回答と解説



問4 ..................................................................................................

データディクショナリが格納される表領域として正しいものを選びなさい。

a.SYSTEM表領域
b.TOOLS表領域
c.USER表領域
d.UNDO表領域
e.任意の表領域を指定できる
      

→回答と解説



問5 ..................................................................................................

下記のSELECT文について、誤っているものをすべて選びなさい。
ただし、表名、カラム名は正しいものとします。

a.select DEPTNO || ' is ' || DNAME  department from DEPT;
b.select DEPTNO || ' is ' || DNAME "department" from DEPT;
c.select DEPTNO || ' is ' || DNAME 'department' from DEPT;
d.select DEPTNO || ' is ' || DNAME as  department from DEPT;
e.select DEPTNO || ' is ' || DNAME as "department" from DEPT;
f.select DEPTNO || ' is ' || DNAME as 'department' from DEPT;
      

→回答と解説



問6 ..................................................................................................

Enterprise Manager の Database Controlへ接続します。

ホスト名が「orcl.co.jp」、接続ポートが「5500」である場合の正しい接続方法を選びなさい。


a.ブラウザから「http://orcl.co.jp」へ接続する
b.ブラウザから「http://orcl.co.jp/5500」へ接続する
c.ブラウザから「http://orcl.co.jp:5500」へ接続する
d.ブラウザから「http://orcl.co.jp/5500/em」へ接続する
e.ブラウザから「http://orcl.co.jp:5500/em」へ接続する
      

→回答と解説



問7 ..................................................................................................

データディクショナリに関する説明として、誤っているものを1つ選びなさい。

a.オブジェクトの定義を確認することができる
b.SYSTEM表領域に格納されている
c.現在のデータベースアクティビティをリアルタイムに表示する
d.参照できる範囲に応じてDBAビュー、ALLビュー、USERビューがある
e.SYS ユーザが所有する
      

→回答と解説



問8 ..................................................................................................

下記の SQL文を実行した結果として正しいものを選びなさい。

SQL> insert into EMP(EMPNO,ENAME) values(9000,'BOB');
SQL> sevepoint A
SQL> insert into EMP(EMPNO,ENAME) values(9001,'ALICE');
SQL> savepoint A
SQL> insert into EMP(EMPNO,ENAME) values(9002,'MAX');
SQL> rollback to A

SQL> select EMPNO,ENAME from EMP;

a.
EMPNO  ENAME
------ ------
9000   BOB


b.
EMPNO  ENAME
------ ------
9000   BOB
9001   ALICE

c.
EMPNO  ENAME
------ ------
9000   BOB
9001   ALICE
9002   MAX

d.結果は 0件となる
      

→回答と解説



問9 ..................................................................................................

VARCHAR2データ型の特徴として正しいものを3つ選びなさい。

a.固定長の文字列データ型である
b.可変長の文字列データ型である
c.1〜2000 バイトまで指定可能
d.1〜4000 バイトまで指定可能
e.未使用バイト分は確保されない(指定文字列データのみを格納する)
f.未使用バイト分は空白が充填される
      

→回答と解説



問10 ................................................................................................

フラッシュバックテーブルを実行する際の、データの取得元を1つ選びなさい。

a.一時表領域のデータ
b.REDOログファイル
c.アーカイブREDOログファイル
d.UNDO表領域のデータ
e.各テーブルの実データ
      

→回答と解説



回答と解説(問1)・・・答え:b,d
列に別名を付ける場合、以下のように指定します。
・「列名 別名」
・「列名 "別名"」
・「列名 as 別名」
・「列名 as "別名"」


別名に空白が含まれている場合や、大文字・小文字を区別したい場合は、
ダブルクォーテーション(") で別名を括ります。また、シングルクォー
テーション(') はエラーになります。
      



回答と解説(問2)・・・答え:a
表別名を利用する場合、表修飾は SQL文中ですべて表別名を使う必要があります。

従って、問題の SQL文を正しく書き換えると、以下のようになります。

SELECT e.ename, b.sal
FROM emp e, bonus b
WHERE e.ename = b.ename
ORDER BY 1;
      



回答と解説(問3)・・・答え:d
順序を作成する構文は以下のようになります。

CREATE SEQUENCE 順序名
 [START WITH 初期値]
 [INCREMENT BY 増分]
 [MAXVALUE 最大値 | NOMAXVALUE]
 [MINVALUE 最小値 | NOMINVALUE]
 [CYCLE | NOCYCLE]
 [CACHE メモリ上にとる値 | NOCACHE];


問題では、初期値が「100」、増分値が「10」、最大値が「150」となり、
最大値に達した場合、 「CYCLE」が指定されているため、最小値から続きの
順序値が作成されます。

よって、以下のように順序値が生成されることになります。

100 110 120 130 140 150 1 11 21 31 41 51 61 ・・・

CYCLE が指定されている場合、初期値ではなく最小値に戻りますので、
最大値に達した後は、 「1」から「10」ずつ生成されます。尚、最小値の
デフォルトは「1」 です。
      



回答と解説(問4)・・・答え:a
データディクショナリとは、「データベースに関する情報」を提供する表と
ビューです。 SYSユーザが所有し、SYSTEM表領域に格納されています。通常
は、表ではなくビューを使用して情報を検索します。

・スキーマオブジェクトの定義や割り当てに関する情報
・整合性制約に関する情報
・Oracleユーザに関する情報
・権限・ロール・情報
・監査情報   etc


※ディクショナリビューの範囲
A) USERビュー
ユーザ所有オブジェクトに関する情報が参照可能。

例:SCOTT ユーザでログインした場合、SCOTT ユーザが所有するオブジェクト(表
  や索引等)の情報が参照可能

B) ALLビュー
ユーザからアクセス可能なオブジェクトに関する情報。

例:SCOTT ユーザでログインした場合、SCOTT ユーザが所有するオブジェクト(表
  や索引等)に加え、他ユーザの所有オブジェクトのうち、アクセスを許可され
  ているオブジェクト(他ユーザから参照等の権限が与えられているオブジェク
  ト)の情報が参照可能

C) DBAビュー
データベース内すべてのオブジェクトに関する情報
      



回答と解説(問5)・・・答え:c,f
列別名は、以下のように指定します。

SELECT 列名 列別名 FROM 表名;
SELECT 列名 '列別名' FROM 表名;
SELECT 列名 AS 列別名 FROM 表名;


別名は、表・列名の命名規則と同じになります。別名に規則違反の名前を利用
する(空白を含む等)場合は、二重引用符(")で囲みます。
      



回答と解説(問6)・・・答え:e
Oracle10g の Enterprise Managerは Webベースとなり(Web ブラウザから接続・
操作可能)、2種類のデータベース管理タイプが用意されました。
・「Grid Control」
・「Database Control」

この「Database Control」は、以前の「スタンドアロン接続」で使用していた管
理コンソールが Webベースとなり、管理機能が強化されたものです。 Webブラウ
ザから「Database Control」へ接続するには、「http://ホスト名:5500/em」 の
URL を使用します(デフォルトポート5500を使用している場合)。
      



回答と解説(問7)・・・答え:c
データディクショナリは、Oracleデータベースに関する情報を提供する実表
とビューのことで、 SYSユーザが所有し、SYSTEM表領域に格納されています。

・オブジェクトの定義や割り当てに関する情報
・制約に関する情報
・ユーザに関する情報
・権限・ロールに関する情報	・・・etc


データディクショナリには、情報を参照できる範囲により、以下の種類があり、
USER_XXX、ALL_XXX、DBA_XXXといった名前を持ちます。

1. USERビュー
ユーザが所有するオブジェクトに関する情報を参照可能。

2. ALLビュー
ユーザからアクセス可能なオブジェクトに関する情報を参照可能。

3. DBAビュー
データベース内すべてのオブジェクトに関する情報を参照可能。
      



回答と解説(問8)・・・答え:b
セーブポイント(SAVEPOINT) を使用すると、ロールバックする位置を指定できます。

例えば、下記の例では、セーブポイントA の状態に戻り、セーブポイントB は取り消
されます。尚、 Aは再度ロールバックに使用できます。

SQL> insert into EMP(EMPNO,ENAME) values(9000,'BOB');
SQL> sevepoint A
SQL> insert into EMP(EMPNO,ENAME) values(9001,'ALICE');
SQL> savepoint B
SQL> insert into EMP(EMPNO,ENAME) values(9002,'MAX');
SQL> rollback to A

SQL> select EMPNO,ENAME from EMP;
EMPNO  ENAME
------ ------
9000   BOB



問題のように、1つのトランザクション中で、同一のセーブポイント名を使用すると、
最初のセーブポイントは消去されます。

従って、結果は以下のようになります。

SQL> select EMPNO,ENAME from EMP;
EMPNO  ENAME
------ ------
9000   BOB
9001   ALICE
      



回答と解説(問9)・・・答え:b,d,e
文字列データ型のうち、CHAR型・VARCHAR2型には以下のような特長があります。

■CHAR(s)
・固定長の文字列データ
・s は、 1〜2000バイトまで指定可
・未使用の部分は空白が充填される


■VARCHAR2(s)
・可変長の文字列データ型
・s は、 1〜4000バイトまで指定可
・格納された文字列データのみが保管される


例:
CHAR(10)     '株式会社' → '株式会社  ' (空白を2バイト充填)
VARCHAR2(10) '株式会社' → '株式会社'
      



回答と解説(問10)・・・答え:d
フラッシュバックとは、過去のある時点のデータを確認することができる機能
で、Oracle9iより導入されました。その後、Oracle10g ではフラッシュバック
機能が強化されています。


※Oracle10g におけるフラッシュバック機能(カッコ内はフラッシュバックデータ取得元)
フラッシュバック問合せ(UNDOデータ)
 :特定の一時点におけるデータを問い合わせる

フラッシュバックバージョン問合せ(UNDOデータ)
 :ある行の2つの時点の間における全変更データを問い合わせる

フラッシュバックトランザクション問合せ(UNDOデータ)
 :トランザクションで実行された変更を戻す SQL文を参照する

フラッシュバックテーブル(UNDOデータ)
 :指定表を特定の一時点の状態にリストアする 

フラッシュバックドロップ(ごみ箱)
 :削除表(および関連索引・制約)を復活させる

フラッシュバックデータベース(フラッシュバックログ)
 :データベース全体を特定の一時点の状態にリストア 
      












Copyright © 2006 mari. All rights reserved.