Oracle 問題1 / 30 REF:1Z0-051.30120
解説:
INTERSECT 重複する行の削除とソートを行い、両方の問合せの結果セットに表示されている行のみを表示します。
複合問合せを構成する列の列名は異なっても構いませんが、結果セットの出力には 1 番目の問合せの列名が使用されます。
INTERSECT 演算子の説明として正しいのは、次のどれですか?
解説:
INTERSECT 重複する行の削除とソートを行い、両方の問合せの結果セットに表示されている行のみを表示します。
複合問合せを構成する列の列名は異なっても構いませんが、結果セットの出力には 1 番目の問合せの列名が使用されます。
Oracle 問題2 / 30 REF:1Z0-051.30123
解説:
列のエイリアス:
- 列名を変更
- 計算処理に便利
- 列名の直後に指定(列名とエイリアス間に任意の AS キーワードを指定することも可能)
- スペースや特殊文字を含む場合、または大文字と小文字を区別する場合には、二重引用符が必要
各顧客のクレジット限度額を $1000 引き上げたレポートを生成する必要があります。
出力には、「Name」列に顧客の姓、「New Credit Limit」列に引き上げ後のクレジット限度額が表示されるようにする必要があります。
また、列名は、最初の文字だけを大文字で表示する必要があります。
この要件を満たす文は、次のどれですか?
出力には、「Name」列に顧客の姓、「New Credit Limit」列に引き上げ後のクレジット限度額が表示されるようにする必要があります。
また、列名は、最初の文字だけを大文字で表示する必要があります。
この要件を満たす文は、次のどれですか?
解説:
列のエイリアス:
- 列名を変更
- 計算処理に便利
- 列名の直後に指定(列名とエイリアス間に任意の AS キーワードを指定することも可能)
- スペースや特殊文字を含む場合、または大文字と小文字を区別する場合には、二重引用符が必要
Oracle 問題3 / 30 REF:1Z0-051.30130
解説:
期間データ型
以下の期間データ型を使用できます。
INTERVAL YEAR TO MONTH 期間を年、月で格納します。
INTERVAL DAY TO SECOND
期間を日、時、分、秒で格納します。
次の問合せを検証してください。
上記の問合せの正しい出力は、次のどれですか?
SELECT INTERVAL '300' MONTH, INTERVAL '54-2' YEAR TO MONTH, INTERVAL '11:12:10.1234567' HOUR TO SECOND FROM dual; |
上記の問合せの正しい出力は、次のどれですか?
解説:
期間データ型
以下の期間データ型を使用できます。
INTERVAL YEAR TO MONTH 期間を年、月で格納します。
INTERVAL DAY TO SECOND
期間を日、時、分、秒で格納します。
Oracle 問題4 / 30 REF:1Z0-051.30133
解説:
あなたは、銀行業務アプリケーション向けに表を作成する必要があります。 表の列の
1 つに、以下の要件があります。
1) 表には、融資期間を格納する列が必要である。
2) この列のデータは、変換機能を使用することなく DATE 型との加算や減算が容易にできる形式で格納する必要がある。
3) アプリケーションの最大信用供与期間は 30 日間とする。
4) 融資期間の日数に応じて利子を計算する必要がある。
表に上記の要件を満たす列を作成する場合、使用するデータ型は、次のどれですか?
1) 表には、融資期間を格納する列が必要である。
2) この列のデータは、変換機能を使用することなく DATE 型との加算や減算が容易にできる形式で格納する必要がある。
3) アプリケーションの最大信用供与期間は 30 日間とする。
4) 融資期間の日数に応じて利子を計算する必要がある。
表に上記の要件を満たす列を作成する場合、使用するデータ型は、次のどれですか?
解説:
Oracle 問題5 / 30 REF:1Z0-051.30134
解説:
VARCHAR2(size)
可変長文字データ(最大サイズの指定は必須、最小サイズは 1、最大サイズは 4000) CHAR [(size)] バイト数がsize(サイズ)の固定長文字データ(デフォルトおよび最小サイズは 1、最大サイズは 2000) NUMBER [(p,s)] 精度が p、位取りが s の数字(精度は全体の桁数、位取りは小数点の右側にある桁数。精度の範囲は 1 ~ 38、位取りの範囲は -84 ~ 127)
DATE 紀元前 1、 4712 年から 9999 年 12 月 31 日の間の日時を秒単位で四捨五入した値
TRANSACTIONS 表の構造の案を見てください。
上記の表構造でのデータの作成と格納の説明として正しいのは、次のどれですか? (該当するものをすべて選択して下さい)
name Null Type TRANS_ID NOT NULL NUMBER(6) CUST_NAME NOT NULL VARCHAR2(20) CUST_STATUS NOT NULL CHAR TRANS_DATE NOT NULL DATE TRANS_VALIDITY VARCHAR2 CUST_CREDIT_LIMIT NUMBER |
上記の表構造でのデータの作成と格納の説明として正しいのは、次のどれですか? (該当するものをすべて選択して下さい)
解説:
VARCHAR2(size)
可変長文字データ(最大サイズの指定は必須、最小サイズは 1、最大サイズは 4000) CHAR [(size)] バイト数がsize(サイズ)の固定長文字データ(デフォルトおよび最小サイズは 1、最大サイズは 2000) NUMBER [(p,s)] 精度が p、位取りが s の数字(精度は全体の桁数、位取りは小数点の右側にある桁数。精度の範囲は 1 ~ 38、位取りの範囲は -84 ~ 127)
DATE 紀元前 1、 4712 年から 9999 年 12 月 31 日の間の日時を秒単位で四捨五入した値
Oracle 問題6 / 30 REF:1Z0-051.30136
解説:
CLOB 文字データ(最大 4 GB)
NUMBER [(p,s)] 精度が p、位取りが s の数字(精度は全体の桁数、位取りは小数点の右側にある桁数。精度の範囲は 1 ~ 38、位取りの範囲は -84 ~ 127)
履歴書(文字ラージオブジェクト [CLOB] データ型)は、社員が提出する履歴書を保存します。
この表を作成するための正しい構文は、次のどれですか?
この表を作成するための正しい構文は、次のどれですか?
解説:
CLOB 文字データ(最大 4 GB)
NUMBER [(p,s)] 精度が p、位取りが s の数字(精度は全体の桁数、位取りは小数点の右側にある桁数。精度の範囲は 1 ~ 38、位取りの範囲は -84 ~ 127)
Oracle 問題7 / 30 REF:1Z0-051.30138
解説:
同義語 同義語は、表を別名で参照するためのデータベース オブジェクトです。 同義語を作成することにより、表に別名を付与できます。
表の説明として正しいのは、次のどれですか? (2 つ選択して下さい)
解説:
同義語 同義語は、表を別名で参照するためのデータベース オブジェクトです。 同義語を作成することにより、表に別名を付与できます。
Oracle 問題8 / 30 REF:1Z0-051.30139
解説:
制約の設定
制約は表単位に対して規則を適用します。
表に依存関係がある場合、表の削除は制約で防止されます。
有効な制約の種類は以下の通りです。
– NOT NULL
– UNIQUE
– PRIMARY KEY
– FOREIGN KEY
– CHECK
制約の説明として正しいのは、次のどれですか? (2 つ選択して下さい)
解説:
制約の設定
制約は表単位に対して規則を適用します。
表に依存関係がある場合、表の削除は制約で防止されます。
有効な制約の種類は以下の通りです。
– NOT NULL
– UNIQUE
– PRIMARY KEY
– FOREIGN KEY
– CHECK
Oracle 問題9 / 30 REF:1Z0-051.30141
解説:
CHECK 制約
CHECK 制約は、各行に対する条件を定義します。 その条件は、以下の例外を除き、問合せの条件と同じように指定できます。
CURRVAL、NEXTVAL、LEVEL、ROWNUM 擬似列の参照
SYSDATE、UID、USER、USERENV 関数の呼び出し
他の行の他の値を参照する問合せ
単一の列には、その列定義を参照する複数の CHECK 制約を指定できます。 列に定義できる CHECK 制約の数に制限はありません。 CHECK 制約は、列単位または表単位で定義することができます。 CREATE TABLE employees (... salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary > 0),
次の CREATE TABLE コマンドを検証してください。
上記のコマンドを実行したところ失敗しました。 理由として考えられるのは、次のどれですか?
CREATE TABLE orders (ord_no NUMBER(2) CONSTRAINT ord_pk PRIMARY KEY, ord_date DATE, cust_id NUMBER(4)); CREATE TABLE ord_items (ord_no NUMBER(2), item_no NUMBER(3), qty NUMBER(3) CHECK (qty BETWEEN 100 AND 200), expiry_date date CHECK (expiry_date > SYSDATE), CONSTRAINT it_pk PRIMARY KEY (ord_no,item_no), CONSTRAINT ord_fk FOREIGN KEY(ord_no) REFERENCES orders(ord_no)); |
上記のコマンドを実行したところ失敗しました。 理由として考えられるのは、次のどれですか?
解説:
CHECK 制約
CHECK 制約は、各行に対する条件を定義します。 その条件は、以下の例外を除き、問合せの条件と同じように指定できます。
CURRVAL、NEXTVAL、LEVEL、ROWNUM 擬似列の参照
SYSDATE、UID、USER、USERENV 関数の呼び出し
他の行の他の値を参照する問合せ
単一の列には、その列定義を参照する複数の CHECK 制約を指定できます。 列に定義できる CHECK 制約の数に制限はありません。 CHECK 制約は、列単位または表単位で定義することができます。 CREATE TABLE employees (... salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary > 0),
Oracle 問題10 / 30 REF:1Z0-051.30142
解説:
CHECK 制約
CHECK 制約は、各行に対する条件を定義します。 その条件は、以下の例外を除き、問合せの条件と同じように指定できます。
CURRVAL、NEXTVAL、LEVEL、ROWNUM 擬似列の参照
SYSDATE、UID、USER、USERENV 関数の呼び出し
他の行の他の値を参照する問合せ 単一の列に対し、その列定義を参照する複数の CHECK 制約を指定できます。 列に定義できる CHECK 制約の数に制限はありません。 CHECK 制約は、列単位または表単位で定義することができます。 CREATE TABLE employees (... salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary > 0),
次の SQL コマンドを検証してください。
表作成のコマンドは失敗しました。 SQL 文が正常に実行されなかった理由は何ですか? (該当するものをすべて選択して下さい)
SQL>CREATE SEQUENCE ord_seq INCREMENT BY 10 START WITH 120 MAXVALUE 9999 NOCYCLE; SQL>CREATE TABLE ord_items (ord_no NUMBER(4)DEFAULT ord_seq.NEXTVAL NOT NULL, item_no NUMBER(3), qty NUMBER(3) CHECK (qty BETWEEN 100 AND 200), expiry_date date CHECK (expiry_date > SYSDATE), CONSTRAINT it_pk PRIMARY KEY (ord_no,item_no), CONSTRAINT ord_fk FOREIGN KEY(ord_no) REFERENCES orders(ord_no)); |
表作成のコマンドは失敗しました。 SQL 文が正常に実行されなかった理由は何ですか? (該当するものをすべて選択して下さい)
解説:
CHECK 制約
CHECK 制約は、各行に対する条件を定義します。 その条件は、以下の例外を除き、問合せの条件と同じように指定できます。
CURRVAL、NEXTVAL、LEVEL、ROWNUM 擬似列の参照
SYSDATE、UID、USER、USERENV 関数の呼び出し
他の行の他の値を参照する問合せ 単一の列に対し、その列定義を参照する複数の CHECK 制約を指定できます。 列に定義できる CHECK 制約の数に制限はありません。 CHECK 制約は、列単位または表単位で定義することができます。 CREATE TABLE employees (... salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary > 0),
Oracle 問題11 / 30 REF:1Z0-051.30143
解説:
PRIMARY KEY 制約
PRIMARY KEY 制約は、表の主キーを作成します。 各表に作成できる主キーは 1 つのみです。 PRIMARY KEY 制約は、表の各行を一意に識別する列、または一連の列です。 この制約により、列や列の組み合わせの一意性が確保され、主キーとなる列に NULL 値が含まれないように確認することができます。
注: 一意性は主キー制約の定義の一部であるため、Oracle サーバは、主キーの列または主キーを構成する複数の列に一意の索引を暗黙的に作成することにより一意性を確保します。
有効な CREATE TABLE 文は、次のどれですか?
解説:
PRIMARY KEY 制約
PRIMARY KEY 制約は、表の主キーを作成します。 各表に作成できる主キーは 1 つのみです。 PRIMARY KEY 制約は、表の各行を一意に識別する列、または一連の列です。 この制約により、列や列の組み合わせの一意性が確保され、主キーとなる列に NULL 値が含まれないように確認することができます。
注: 一意性は主キー制約の定義の一部であるため、Oracle サーバは、主キーの列または主キーを構成する複数の列に一意の索引を暗黙的に作成することにより一意性を確保します。
Oracle 問題12 / 30 REF:1Z0-051.30147
解説:制約の定義
このスライドでは、表作成時に制約を定義するための構文を示しています。制約は、列単位でも表単位でも作成できます。列単位の制約は、列の定義に含まれます。表単位の制約は表定義の最後で定義され、制約を指定する1つ以上の列を、一連の括弧で指定する必要があります。表単位と列単位の制約の主な違いは構文だけで、機能的には同じです。
NOT NULL制約は列単位で定義する必要があります。
2 つ以上の列に適用される制約は、表単位で定義する必要があります。
次の SQL コマンドを見てください。
上記の SQL コマンドの実行に関する正しい説明は、次のどれですか?
SQL>CREATE TABLE products ( prod_id NUMBER(3) CONSTRAINT p_ck CHECK (prod_id > 0), prod_name CHAR(30), prod_qty NUMBER(6), CONSTRAINT p_name NOT NULL, CONSTRAINT prod_pk PRIMARY KEY (prod_id)); SQL>CREATE TABLE warehouse ( warehouse_id NUMBER(4), roomno NUMBER(10) CONSTRAINT r_id CHECK(roomno BETWEEN 101 AND 200), location VARCHAR2(25), prod_id NUMBER(3), CONSTRAINT wr_pr_pk PRIMARY KEY (warehouse_id,prod_id), CONSTRAINT prod_fk FOREIGN KEY (prod_id) REFERENCES products(prod_id)); |
上記の SQL コマンドの実行に関する正しい説明は、次のどれですか?
解説:制約の定義
このスライドでは、表作成時に制約を定義するための構文を示しています。制約は、列単位でも表単位でも作成できます。列単位の制約は、列の定義に含まれます。表単位の制約は表定義の最後で定義され、制約を指定する1つ以上の列を、一連の括弧で指定する必要があります。表単位と列単位の制約の主な違いは構文だけで、機能的には同じです。
NOT NULL制約は列単位で定義する必要があります。
2 つ以上の列に適用される制約は、表単位で定義する必要があります。
Oracle 問題13 / 30 REF:1Z0-051.30152
解説:
ビューに対する DML 操作の実行に関する規則
ビューに以下が含まれる場合は、ビューからデータを追加できません。
グループ機能 A GROUP BY 句、DISTINCT キーワード、仮想列 ROWNUM キーワード、式により定義された列、ビューにより選択されていないベーステーブルの NOT NULL 列
ビューに関する正しい説明は、次のどれですか?(2 つ選択して下さい)
解説:
ビューに対する DML 操作の実行に関する規則
ビューに以下が含まれる場合は、ビューからデータを追加できません。
グループ機能 A GROUP BY 句、DISTINCT キーワード、仮想列 ROWNUM キーワード、式により定義された列、ビューにより選択されていないベーステーブルの NOT NULL 列
Oracle 問題14 / 30 REF:1Z0-051.30153
解説:
シーケンスの作成(続き)
CYCLE | NOCYCLE 最大値または最小値に達した後、シーケンスが値の生成を続行するかどうかを指定します(デフォルトのオプションは NOCYCLE)。
CACHE n | NOCACHE Oracle サーバが事前に割り当てメモリに格納する値の数を指定します(デフォルトで、Oracle サーバは 20 個の値をキャッシュ化します)。
ビューに関する正しい説明は、次のどれですか?(3 つ選択して下さい)
解説:
シーケンスの作成(続き)
CYCLE | NOCYCLE 最大値または最小値に達した後、シーケンスが値の生成を続行するかどうかを指定します(デフォルトのオプションは NOCYCLE)。
CACHE n | NOCACHE Oracle サーバが事前に割り当てメモリに格納する値の数を指定します(デフォルトで、Oracle サーバは 20 個の値をキャッシュ化します)。
Oracle 問題15 / 30 REF:1Z0-051.30158
解説:
索引の作成
以下の 2 種類の索引を作成できます。
一意索引: 表の列に主キー制約や一意制約を定義すると、Oracle サーバは自動的にこの索引を作成します。索引名は、制約名となります。
非一意索引: これは、ユーザが作成できる索引です。例えば、問合せの結合に外部キー列の索引を使用すれば、問合せ実行のスピードを向上できます。注: 手動で一意索引を作成することは可能ですが、暗黙的に一意索引を作成する一意制約の作成が推奨されます。
添付図の ORD 表と ORD_ITEMS
表の構造を見てください。
ORD
ORD_ITEMS
ORD_NO 列は ORD 表の主キーで、 ORD_NO 列および ITEM_NO 列は ORD_ITEMS 表の複合主キーです。
有効な CREATE INDEX 文は、次のどれですか?(2 つ選択して下さい)
ORD
列名 |
NULL? |
データ型 |
ORD_NO |
NOT HULL |
NUMBER(2) |
ORD_DATE |
DATE |
|
CUST_ID |
NUMBER(4) |
ORD_ITEMS
列名 |
Null? |
データ型 |
ORD_NO |
NOT NULL |
NUMBER(2) |
ITEM_NO |
NOT NULL |
NUMBER(3) |
QTY |
NUMBER(8,2) |
ORD_NO 列は ORD 表の主キーで、 ORD_NO 列および ITEM_NO 列は ORD_ITEMS 表の複合主キーです。
有効な CREATE INDEX 文は、次のどれですか?(2 つ選択して下さい)
解説:
索引の作成
以下の 2 種類の索引を作成できます。
一意索引: 表の列に主キー制約や一意制約を定義すると、Oracle サーバは自動的にこの索引を作成します。索引名は、制約名となります。
非一意索引: これは、ユーザが作成できる索引です。例えば、問合せの結合に外部キー列の索引を使用すれば、問合せ実行のスピードを向上できます。注: 手動で一意索引を作成することは可能ですが、暗黙的に一意索引を作成する一意制約の作成が推奨されます。
Oracle 問題16 / 30 REF:1Z0-051.30163
解説:注: WHERE 句に列のエイリアスを使用することはできません。
添付図の PRODUCTS 表の構造を見てください。
あなたは PRODUCTS 表を使用して、25% の割引を適用した後に $10 以下になる製品の製品名、現在の表示価格、割引後の価格を表示する以下の問合せを発行しました。
問合せはエラーを生成しました。エラーの理由として考えられるのは、次のどれですか?
PRODUCTS 表 |
||
列名 |
Null? |
データ型 |
PROD_ID |
NOT NULL |
NUMBER(6) |
PROD _NAME |
NOT NULL |
VARCHAR2 (50) |
PROD_DESC |
NOT NULL |
VARCHAR2 (4000) |
PROD_CATEGORY |
NOT NULL |
VARCHAR2 (50) |
PROD_CATEGORY_ID |
NOT NULL |
NUMBER |
PROD_UNIT_OF_MEASURE |
VARCHAR2 (20) |
|
SUPPLIER_ID |
NOT NULL |
NUMBER(6) |
PROD_STATUS |
NOT NULL |
VARCHAR2 (20) |
PROD_LIST_PRICE |
NOT NULL |
NUMBER(8,2) |
PROD_MIN_PRICE |
NOT NULL |
NUMBER(8,2) |
あなたは PRODUCTS 表を使用して、25% の割引を適用した後に $10 以下になる製品の製品名、現在の表示価格、割引後の価格を表示する以下の問合せを発行しました。
SQL>SELECT prod_name, prod_list_price, prod_list_price - (prod_list_price * .25) "DISCOUNTED_PRICE" FROM products WHERE discounted_price < 10; |
問合せはエラーを生成しました。エラーの理由として考えられるのは、次のどれですか?
解説:注: WHERE 句に列のエイリアスを使用することはできません。
Oracle 問題17 / 30 REF:1Z0-051.30169
解説:
ワイルドカード文字の組み合わせ
% および _ 記号は、リテラル文字と自由に組み合わせることができます。スライドの例では、苗字の 2 番目の文字が 'o' である社員全員の氏名を表示します。
エスケープ識別子
% や _ を文字として一致させる必要がある場合には、エスケープ識別子を使用します。このオプションでは、エスケープ文字を指定します。例えば、SA_を含む文字列を検索する場合の SQL 文は、SELECT employee_id, last_name, job_id FROM employees WHERE job_id LIKE '%SA\_%' ESCAPE '\'; となります。
SPARES 表の
PART_CODE 列には以下の値が含まれています。
次の問合せを見てください。
上記の問合せの結果に関する正しい説明は、次のどれですか?
PART_CODE A%_WQ123 A%BWQ123 AB_WQ123 |
次の問合せを見てください。
SQL> SELECT part_code FROM spares WHERE part_code LIKE '%\%_WQ12%' ESCAPE '\'; |
上記の問合せの結果に関する正しい説明は、次のどれですか?
解説:
ワイルドカード文字の組み合わせ
% および _ 記号は、リテラル文字と自由に組み合わせることができます。スライドの例では、苗字の 2 番目の文字が 'o' である社員全員の氏名を表示します。
エスケープ識別子
% や _ を文字として一致させる必要がある場合には、エスケープ識別子を使用します。このオプションでは、エスケープ文字を指定します。例えば、SA_を含む文字列を検索する場合の SQL 文は、SELECT employee_id, last_name, job_id FROM employees WHERE job_id LIKE '%SA\_%' ESCAPE '\'; となります。
Oracle 問題18 / 30 REF:1Z0-051.30195
解説:
添付図の
EMPLOYEES 表の構造を見てください。
EMPLOYEES 表の ENAME 列および HIREDATE 列のデータを見てください。
ENAME HIREDATE
----------------------------------
SMITH 17-DEC-80
ALLEN 20-FEB-81
WARD 22-FEB-81
あなたは、以下のようなユーザ ID のリストを作成したいと考えています。USERID
Smi17DEC80 All20FEB81 War22FEB81
そこで、以下の問合せを発行しました。
結果はどうなりますか?
EMPLOYEES Name Null? Type ------------------------------------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) HIREDATE DATE SAL NUMBER(7, 2) COMM NUMBER(7, 2) DEPTNO NUMBER(2) |
EMPLOYEES 表の ENAME 列および HIREDATE 列のデータを見てください。
ENAME HIREDATE
----------------------------------
SMITH 17-DEC-80
ALLEN 20-FEB-81
WARD 22-FEB-81
あなたは、以下のようなユーザ ID のリストを作成したいと考えています。USERID
Smi17DEC80 All20FEB81 War22FEB81
そこで、以下の問合せを発行しました。
SQL>SELECT CONCAT(SUBSTR(INITCAP(ename),1,3), REPLACE(hiredate,'-')) "USERID" FROM employees; |
結果はどうなりますか?
解説:
Oracle 問題19 / 30 REF:1Z0-051.30198
解説:
NEXT_DAY(date, 'char'): date の翌日以降の日で指定した曜日('char')の日付を返します。char の値には、曜日を表す数字または文字列を指定できます。
LAST_DAY(date): date を含む月の最終日の日付を返します。内側から 2 番目の関数が次に評価されます。TO_CHAR('28-OCT-2009', 'fmMonth') は、指定の日付を Month 書式マスクに従って変換し、文字列 October を返します。fm 修飾子は、月名の末尾の空白を削除します。
あなたは、来月の第 1 月曜日の日付を表示したいと考え、次のコマンドを実行しました。
結果はどうなりますか?
SQL>SELECT TO_CHAR(NEXT_DAY(LAST_DAY(SYSDATE),'MON'), 'dd "is the first Monday for" fmmonth rrrr') FROM DUAL; |
結果はどうなりますか?
解説:
NEXT_DAY(date, 'char'): date の翌日以降の日で指定した曜日('char')の日付を返します。char の値には、曜日を表す数字または文字列を指定できます。
LAST_DAY(date): date を含む月の最終日の日付を返します。内側から 2 番目の関数が次に評価されます。TO_CHAR('28-OCT-2009', 'fmMonth') は、指定の日付を Month 書式マスクに従って変換し、文字列 October を返します。fm 修飾子は、月名の末尾の空白を削除します。
Oracle 問題20 / 30 REF:1Z0-051.30201
解説:
PRICE_LIST 表の構造とデータを見てください。
name Null Type
----------------------
PROD_ID NOT NULL NUMBER(3)
PROD_PRICE VARCHAR2(10)
PROD_ID PROD_PRICE
----------------------
100 $234.55
101 $6,509.75
102 $1,234
あなたは、製品価格を 25 % 割引して、割引価格を PROD_PRICE と同じ書式で表示する必要があります。
必要な結果を返すSQL 文は、次のどれですか?
name Null Type
----------------------
PROD_ID NOT NULL NUMBER(3)
PROD_PRICE VARCHAR2(10)
PROD_ID PROD_PRICE
----------------------
100 $234.55
101 $6,509.75
102 $1,234
あなたは、製品価格を 25 % 割引して、割引価格を PROD_PRICE と同じ書式で表示する必要があります。
必要な結果を返すSQL 文は、次のどれですか?
解説:
Oracle 問題21 / 30 REF:1Z0-051.30204
解説:NVL 関数
null 値を実際の値に変換します。使用できるデータ型は、日付型、文字列型、数値型です。データ型は一致する必要があります。
– NVL(commission_pct,0)
– NVL(hire_date,'01-JAN-97')
– NVL(job_id,'No Job Yet')
添付図の CUSTOMERS 表の構造を見てください。
あなたは CUSTOMERS 表を使用して、顧客全員のクレジット上限額を 15% 引き上げて表示するレポートを作成する必要があります。
クレジット上限額が入力されていない顧客には、「未入力(Not Available)」と表示します。
必要な結果を返すSQL 文は、次のどれですか?
CUSTOMERS 表 |
||
列名 |
Null? |
データ型 |
CUST_ID |
NOT NULL |
NUMBER |
CUST_FIRST_NAME |
NOT NULL |
VARCHAR2 (20) |
CUST_LAST_NAME |
NOT NULL |
VARCHAR2 (40) |
CUST_GENDER |
NOT NULL |
CHAR (1) |
CUST_YEAR_OF_BIRTH |
NOT NULL |
NUMBER (4) |
CUST_MARITIAL_STATUS |
VARCHAR2 (20) |
|
CUST_STREET_ADDRESS |
NOT NULL |
VARCHAR2 (40) |
CUST_POSTAL_CODE |
NOT NULL |
VARCKAR2 (10) |
CUST_CITY |
NOT NULL |
VARCHAR2 (30) |
CUST_STATE_PROVINCE |
NOT NULL |
VARCHAR2 (40) |
COUNTRY_ID |
NOT NULL |
NUMBER |
CUST_INCOME_LEVEL |
VARCHAR2 (30) |
|
CUST_CREDIT_LIMIT |
NUMBER |
|
CUST_EMAIL |
VARCHAR2 (30) |
あなたは CUSTOMERS 表を使用して、顧客全員のクレジット上限額を 15% 引き上げて表示するレポートを作成する必要があります。
クレジット上限額が入力されていない顧客には、「未入力(Not Available)」と表示します。
必要な結果を返すSQL 文は、次のどれですか?
解説:NVL 関数
null 値を実際の値に変換します。使用できるデータ型は、日付型、文字列型、数値型です。データ型は一致する必要があります。
– NVL(commission_pct,0)
– NVL(hire_date,'01-JAN-97')
– NVL(job_id,'No Job Yet')
Oracle 問題22 / 30 REF:1Z0-051.30207
解説:NVL2 関数
NVL2 関数は NVL を拡張した関数ですが、目的は非常に似ており、 列や式(どのデータ型でも可)が NULL であるかどうかを評価します。
5-6 NVL 関数 1番目の引数が NULL でない場合は、2 番目の引数、それ以外の場合は 3 番目の引数を返します。NVL 関数は、NULL でない場合に元の引数を返すところが異なりますので注意してください。NVL2 関数には、3 番目の引数(必須)もあります。構文は NVL2(original, ifnotnull, ifnull) で、original は判別対象となる条件を表します。original が NULL でない場合は Ifnotnull、NULL の場合は ifnull を返します。ifnotnull および ifnull 引数のデータ型には互換性が必要で、LONG 型は使用できません。同一型か、 ifnull を ifnotnull 引数の型に変換できる必要があります。NVL2 関数が返すデータ型は、ifnotnull 引数のデータ型と同じです。
次の INVOICE 表の構造を見てください。
正常に実行される SQL 文は、次のどれですか?(2 つ選択して下さい)
name Null Type INV_NO NOT NULL NUMBER(3) INV_DATE DATE INV_AMT NUMBER(10,2) |
正常に実行される SQL 文は、次のどれですか?(2 つ選択して下さい)
解説:NVL2 関数
NVL2 関数は NVL を拡張した関数ですが、目的は非常に似ており、 列や式(どのデータ型でも可)が NULL であるかどうかを評価します。
5-6 NVL 関数 1番目の引数が NULL でない場合は、2 番目の引数、それ以外の場合は 3 番目の引数を返します。NVL 関数は、NULL でない場合に元の引数を返すところが異なりますので注意してください。NVL2 関数には、3 番目の引数(必須)もあります。構文は NVL2(original, ifnotnull, ifnull) で、original は判別対象となる条件を表します。original が NULL でない場合は Ifnotnull、NULL の場合は ifnull を返します。ifnotnull および ifnull 引数のデータ型には互換性が必要で、LONG 型は使用できません。同一型か、 ifnull を ifnotnull 引数の型に変換できる必要があります。NVL2 関数が返すデータ型は、ifnotnull 引数のデータ型と同じです。
Oracle 問題23 / 30 REF:1Z0-051.30208
解説:NULLIF 関数
NULLIF 関数は 2 つの引数が同等であるかどうかを判別します。同等の場合、関数は NULL を返し、それ以外の場合は最初の引数を返します。
NULLIF 関数には 2 つの引数(必須、どのデータ型でも可)があります。構文は NULLIF(ifunequal,comparison_term) で、ifunequal 引数および comparison_term 引数の比較が行われます。同一であればNULL が返され、 異なればifunequal 引数が返されます。
添付図の CUST_STATUS
表の構造とデータを見てください。
あなたは、以下のSQL 文を発行しました。
上記の問合せの実行に関する正しい説明は、次のどれですか?
あなたは、以下のSQL 文を発行しました。
SQL> SELECT custno, NVL2(NULLIF(amt_spent, credit_limit), 0, 1000)"BONUS" FROM cust_status; |
上記の問合せの実行に関する正しい説明は、次のどれですか?
解説:NULLIF 関数
NULLIF 関数は 2 つの引数が同等であるかどうかを判別します。同等の場合、関数は NULL を返し、それ以外の場合は最初の引数を返します。
NULLIF 関数には 2 つの引数(必須、どのデータ型でも可)があります。構文は NULLIF(ifunequal,comparison_term) で、ifunequal 引数および comparison_term 引数の比較が行われます。同一であればNULL が返され、 異なればifunequal 引数が返されます。
Oracle 問題24 / 30 REF:1Z0-051.30209
解説:
COALESCE 関数
COALESCE 関数は、引数のリストの最初の NULL でない値を返します。すべての引数が NULL の場合は、null を返します。
NCOALESCE 関数の最初の 2 つの引数は必須で、後は任意個数の任意の引数です。構文は COALESCE(expr1, expr2,…,exprn) で、expr1 がNULL でなければ expr1 を返し、 expr2がNULL でなければexpr2 を返す…というように続いていきます。次の2つの等式を見るとわかるように、 COALESCE は、NVL 関数を一般化したものです。
COALESCE(expr1,expr2) = NVL(expr1,expr2)
COALESCE(expr1,expr2,expr3) = NVL(expr1,NVL(expr2,expr3))
COALESCE が NULL でない値を見つけた場合に返すデータ型は、最初の NULL でない引数のデータ型と同じです。
"ORA-00932: inconsistent data types" エラーを防ぐため、NULL でない引数はすべて、最初の NULL でない引数と同じデータ型である必要があります。
COALESCE 関数に関する正しい説明は、次のどれですか?
解説:
COALESCE 関数
COALESCE 関数は、引数のリストの最初の NULL でない値を返します。すべての引数が NULL の場合は、null を返します。
NCOALESCE 関数の最初の 2 つの引数は必須で、後は任意個数の任意の引数です。構文は COALESCE(expr1, expr2,…,exprn) で、expr1 がNULL でなければ expr1 を返し、 expr2がNULL でなければexpr2 を返す…というように続いていきます。次の2つの等式を見るとわかるように、 COALESCE は、NVL 関数を一般化したものです。
COALESCE(expr1,expr2) = NVL(expr1,expr2)
COALESCE(expr1,expr2,expr3) = NVL(expr1,NVL(expr2,expr3))
COALESCE が NULL でない値を見つけた場合に返すデータ型は、最初の NULL でない引数のデータ型と同じです。
"ORA-00932: inconsistent data types" エラーを防ぐため、NULL でない引数はすべて、最初の NULL でない引数と同じデータ型である必要があります。
Oracle 問題25 / 30 REF:1Z0-051.30259
解説:複数行副問合せでの ANY 演算子の使用 ANY 演算子(およびシノニムの SOME 演算子)は、特定の値を、副問合せで返された各値と比較します。
<ANY:最高値未満
>ANY:最低値より上
=ANY は IN と同等
複数行副問合せでの ALL 演算子の使用 ALL 演算子は、特定の値を副問合せで返された各値と比較します。>ALL は最高値より上、<ALL は最低値未満を意味します。NOT 演算子は、IN、ANY、ALL 演算子で使用できます。
添付図の PRODUCTS 表の構造を見てください。
あなたは、平均表示価格が最大表示価格の半分未満である製品カテゴリの平均表示価格を表示するレポートを作成したいと考えています。
正しい結果を返す問合せは、次のどれですか?
PRODUCTS 表 |
||
列名 |
Null? |
データ型 |
PROD_ID |
NOT NULL |
NUMBER(6) |
PROD _NAME |
NOT NULL |
VARCHAR2 (50) |
PROD_DESC |
NOT NULL |
VARCHAR2 (4000) |
PROD_CATEGORY |
NOT NULL |
VARCHAR2 (50) |
PROD_CATEGORY_ID |
NOT NULL |
NUMBER |
PROD_UNIT_OF_MEASURE |
VARCHAR2 (20) |
|
SUPPLIER_ID |
NOT NULL |
NUMBER(6) |
PROD_STATUS |
NOT NULL |
VARCHAR2 (20) |
PROD_LIST_PRICE |
NOT NULL |
NUMBER(8,2) |
PROD_MIN_PRICE |
NOT NULL |
NUMBER(8,2) |
あなたは、平均表示価格が最大表示価格の半分未満である製品カテゴリの平均表示価格を表示するレポートを作成したいと考えています。
正しい結果を返す問合せは、次のどれですか?
解説:複数行副問合せでの ANY 演算子の使用 ANY 演算子(およびシノニムの SOME 演算子)は、特定の値を、副問合せで返された各値と比較します。
<ANY:最高値未満
>ANY:最低値より上
=ANY は IN と同等
複数行副問合せでの ALL 演算子の使用 ALL 演算子は、特定の値を副問合せで返された各値と比較します。>ALL は最高値より上、<ALL は最低値未満を意味します。NOT 演算子は、IN、ANY、ALL 演算子で使用できます。
Oracle 問題26 / 30 REF:1Z0-051.30263
解説:
複合問合せを構成する問合せの列は異なる列名でも構いませんが、出力される結果セットには 1 番目の問合せの列名が使用されます。複合問合せは、デフォルトで左から右に全列でソートされた行を返します。唯一の例外は UNION ALL で、行はソートされません。ORDER BY 句は、複合問合せの末尾にのみ配置できます。
Oracle サーバと Set 操作
UNION ALL を除き、重複行は自動的に削除されます。
1 番目の問合せの列名が結果に表示されます。
UNION ALL を除き、デフォルトで出力は昇順にソートされます。
UNION 演算子の説明として正しいのは、次のどれですか?
解説:
複合問合せを構成する問合せの列は異なる列名でも構いませんが、出力される結果セットには 1 番目の問合せの列名が使用されます。複合問合せは、デフォルトで左から右に全列でソートされた行を返します。唯一の例外は UNION ALL で、行はソートされません。ORDER BY 句は、複合問合せの末尾にのみ配置できます。
Oracle サーバと Set 操作
UNION ALL を除き、重複行は自動的に削除されます。
1 番目の問合せの列名が結果に表示されます。
UNION ALL を除き、デフォルトで出力は昇順にソートされます。
Oracle 問題27 / 30 REF:1Z0-051.30264
解説:
添付図の PROMOTIONS
表、SALES 表の構造を見てください。
同じ結果を返す SQL 文は、次のどれですか?(2 つ選択して下さい)
PRODUCTS 表 |
||
列名 |
Null? |
データ型 |
PROD_ID |
NOT NULL |
NUMBER(6) |
PROD _NAME |
NOT NULL |
VARCHAR2 (50) |
PROD_DESC |
NOT NULL |
VARCHAR2 (4000) |
PROD_CATEGORY |
NOT NULL |
VARCHAR2 (50) |
PROD_CATEGORY_ID |
NOT NULL |
NUMBER |
PROD_UNIT_OF_MEASURE |
VARCHAR2 (20) |
|
SUPPLIER_ID |
NOT NULL |
NUMBER(6) |
PROD_STATUS |
NOT NULL |
VARCHAR2 (20) |
PROD_LIST_PRICE |
NOT NULL |
NUMBER(8,2) |
PROD_MIN_PRICE |
NOT NULL |
NUMBER(8,2) |
SALES 表 |
||
列名 |
Null? |
データ型 |
PROD_ID |
NOT NULL |
NUMBER |
CUST_ID |
NOT NULL |
NUMBER |
TIME_ID |
NOT NULL |
DATE |
CHANNEL_ID |
NOT NULL |
NUMBER |
PROMO_ID |
NOT NULL |
NUMBER |
QUANTITY_SOLD |
NOT NULL |
NUMBER(10,2) |
解説:
Oracle 問題28 / 30 REF:1Z0-051.30266
解説:
Set 操作における ORDER BY 句の使用
ORDER BY 句は、複合問合せの末尾に 1 回のみ使用できます。
複合問合せには、個別に ORDER BY 句を使用することはできません。
ORDER BY 句は、1 番目の SELECT 問合せの列のみ認識します。
デフォルトで、出力は 1 番目の SELECT 問合せの 1 番目の列に基づいて昇順にソートされます。
次の SQL 文を見てください。
上記の問合せの結果に関する正しい説明は、次のどれですか?
SQL> SELECT promo_id, promo_category FROM promotions WHERE promo_category = 'Internet' ORDER BY 2 DESC UNION SELECT promo_id, promo_category FROM promotions WHERE promo_category = 'TV' UNION SELECT promo_id, promo_category FROM promotions WHERE promo_category ='Radio'; |
上記の問合せの結果に関する正しい説明は、次のどれですか?
解説:
Set 操作における ORDER BY 句の使用
ORDER BY 句は、複合問合せの末尾に 1 回のみ使用できます。
複合問合せには、個別に ORDER BY 句を使用することはできません。
ORDER BY 句は、1 番目の SELECT 問合せの列のみ認識します。
デフォルトで、出力は 1 番目の SELECT 問合せの 1 番目の列に基づいて昇順にソートされます。
Oracle 問題29 / 30 REF:1Z0-051.30275
解説:
副問合せを使用した 2 列の更新
複数の副問合せを作成することにより、UPDATE 文の SET 句の複数の列を更新できます。構文は以下の通りです。
添付図の CUSTOMERS
表の構造を見てください。
あなたは、CUST_ID 2360 の顧客の CUST_INCOME_LEVEL 列および CUST_CREDIT_LIMIT 列を更新して、CUST_INCOME_LEVEL の値は CUST_ID 2560 の値、CUST_CREDIT_LIMIT の値は CUST_ID 2566 の値と同じにしたいと考えています。
このタスクを達成する UPDATE 文は、次のどれですか?
CUSTOMERS 表 |
||
列名 |
Null? |
データ型 |
CUST_ID |
NOT NULL |
NUMBER |
CUST_FIRST_NAME |
NOT NULL |
VARCHAR2 (20) |
CUST_LAST_NAME |
NOT NULL |
VARCHAR2 (40) |
CUST_GENDER |
NOT NULL |
CHAR (1) |
CUST_YEAR_OF_BIRTH |
NOT NULL |
NUMBER (4) |
CUST_MARITIAL_STATUS |
VARCHAR2 (20) |
|
CUST_STREET_ADDRESS |
NOT NULL |
VARCHAR2 (40) |
CUST_POSTAL_CODE |
NOT NULL |
VARCKAR2 (10) |
CUST_CITY |
NOT NULL |
VARCHAR2 (30) |
CUST_STATE_PROVINCE |
NOT NULL |
VARCHAR2 (40) |
COUNTRY_ID |
NOT NULL |
NUMBER |
CUST_INCOME_LEVEL |
VARCHAR2 (30) |
|
CUST_CREDIT_LIMIT |
NUMBER |
|
CUST_EMAIL |
VARCHAR2 (30) |
あなたは、CUST_ID 2360 の顧客の CUST_INCOME_LEVEL 列および CUST_CREDIT_LIMIT 列を更新して、CUST_INCOME_LEVEL の値は CUST_ID 2560 の値、CUST_CREDIT_LIMIT の値は CUST_ID 2566 の値と同じにしたいと考えています。
このタスクを達成する UPDATE 文は、次のどれですか?
解説:
副問合せを使用した 2 列の更新
複数の副問合せを作成することにより、UPDATE 文の SET 句の複数の列を更新できます。構文は以下の通りです。
UPDATE table SET column = (SELECT column FROM table WHERE condition) [ , column = (SELECT column FROM table WHERE condition)] [WHERE condition ] ; |
Oracle 問題30 / 30 REF:1Z0-051.30290
解説:副問合せの定義
副問合せとは、SELECT、INSERT、UPDATE、DELETE 文または別の副問合せ内にネストされた問合せです。副問合せは、行セット、または 1 行のみを親問合せに返します。スカラ副問合せは、1 つの値のみ(1 行、1 列)を返す問合せです。スカラ副問合せは、SQL 文で式やリテラル値を使用するところなど、ほぼどこにでも使用できます。問合せ内で副問合せを使用できるところは以下の通りです。
列を選択する SELECT リスト内
FROM 句内
WHERE 句内
HAVING 句内
副問合せは、FROM 句では無制限にネストすることができますが、WHERE 句では 255 階層「しか」ネストできません。副問合せは、SELECT リストおよび問合せの FROM 句、WHERE 句、HAVING 句で使用できます。
副問合せの説明として正しいのは、次のどれですか?(2 つ選択して下さい)
解説:副問合せの定義
副問合せとは、SELECT、INSERT、UPDATE、DELETE 文または別の副問合せ内にネストされた問合せです。副問合せは、行セット、または 1 行のみを親問合せに返します。スカラ副問合せは、1 つの値のみ(1 行、1 列)を返す問合せです。スカラ副問合せは、SQL 文で式やリテラル値を使用するところなど、ほぼどこにでも使用できます。問合せ内で副問合せを使用できるところは以下の通りです。
列を選択する SELECT リスト内
FROM 句内
WHERE 句内
HAVING 句内
副問合せは、FROM 句では無制限にネストすることができますが、WHERE 句では 255 階層「しか」ネストできません。副問合せは、SELECT リストおよび問合せの FROM 句、WHERE 句、HAVING 句で使用できます。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。