2012年11月16日金曜日

1Z0-051J 11g SQL基礎I [11g SQLI]

Oracle 問題1 / 30   REF:1Z0-051.30120


INTERSECT 演算子の説明として正しいのは、次のどれですか?









解説:

INTERSECT 重複する行の削除とソートを行い、両方の問合せの結果セットに表示されている行のみを表示します。

複合問合せを構成する列の列名は異なっても構いませんが、結果セットの出力には 1 番目の問合せの列名が使用されます。

Oracle 問題2 / 30   REF:1Z0-051.30123


各顧客のクレジット限度額を $1000 引き上げたレポートを生成する必要があります。

出力には、「Name」列に顧客の姓、「New Credit Limit」列に引き上げ後のクレジット限度額が表示されるようにする必要があります。

また、列名は、最初の文字だけを大文字で表示する必要があります。

この要件を満たす文は、次のどれですか?









解説:

列のエイリアス:

- 列名を変更

- 計算処理に便利

- 列名の直後に指定(列名とエイリアス間に任意の AS キーワードを指定することも可能)

- スペースや特殊文字を含む場合、または大文字と小文字を区別する場合には、二重引用符が必要

Oracle 問題3 / 30   REF:1Z0-051.30130


次の問合せを検証してください。

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) 融資期間の日数に応じて利子を計算する必要がある。

表に上記の要件を満たす列を作成する場合、使用するデータ型は、次のどれですか?











解説:

Oracle 問題5 / 30   REF:1Z0-051.30134


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] データ型)は、社員が提出する履歴書を保存します。

この表を作成するための正しい構文は、次のどれですか?









解説:

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


制約の説明として正しいのは、次のどれですか? (2 つ選択して下さい)











解説:

制約の設定

制約は表単位に対して規則を適用します。

表に依存関係がある場合、表の削除は制約で防止されます。

有効な制約の種類は以下の通りです。

– NOT NULL

– UNIQUE

– PRIMARY KEY

– FOREIGN KEY

– CHECK

Oracle 問題9 / 30   REF:1Z0-051.30141


次の 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


次の 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


有効な CREATE TABLE 文は、次のどれですか?









解説:

PRIMARY KEY 制約

PRIMARY KEY 制約は、表の主キーを作成します。 各表に作成できる主キーは 1 つのみです。 PRIMARY KEY 制約は、表の各行を一意に識別する列、または一連の列です。 この制約により、列や列の組み合わせの一意性が確保され、主キーとなる列に NULL 値が含まれないように確認することができます。

注: 一意性は主キー制約の定義の一部であるため、Oracle サーバは、主キーの列または主キーを構成する複数の列に一意の索引を暗黙的に作成することにより一意性を確保します。

Oracle 問題12 / 30   REF:1Z0-051.30147


次の 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


ビューに関する正しい説明は、次のどれですか?(2 つ選択して下さい)









解説:

ビューに対する DML 操作の実行に関する規則

ビューに以下が含まれる場合は、ビューからデータを追加できません。

グループ機能 A GROUP BY 句、DISTINCT キーワード、仮想列 ROWNUM キーワード、式により定義された列、ビューにより選択されていないベーステーブルの NOT NULL 列

Oracle 問題14 / 30   REF:1Z0-051.30153


ビューに関する正しい説明は、次のどれですか?(3 つ選択して下さい)













解説:

シーケンスの作成(続き)

CYCLE | NOCYCLE 最大値または最小値に達した後、シーケンスが値の生成を続行するかどうかを指定します(デフォルトのオプションは NOCYCLE)。

CACHE n | NOCACHE Oracle サーバが事前に割り当てメモリに格納する値の数を指定します(デフォルトで、Oracle サーバは 20 個の値をキャッシュ化します)。

Oracle 問題15 / 30   REF:1Z0-051.30158


添付図の ORD 表と ORD_ITEMS 表の構造を見てください。

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


添付図の 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)



あなたは 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


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

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


あなたは、来月の第 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 文は、次のどれですか?









解説:

Oracle 問題21 / 30   REF:1Z0-051.30204


添付図の CUSTOMERS 表の構造を見てください。

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


次の INVOICE 表の構造を見てください。

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


添付図の CUST_STATUS 表の構造とデータを見てください。

あなたは、以下の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 関数

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


添付図の 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


UNION 演算子の説明として正しいのは、次のどれですか?









解説:

複合問合せを構成する問合せの列は異なる列名でも構いませんが、出力される結果セットには 1 番目の問合せの列名が使用されます。複合問合せは、デフォルトで左から右に全列でソートされた行を返します。唯一の例外は UNION ALL で、行はソートされません。ORDER BY 句は、複合問合せの末尾にのみ配置できます。

Oracle サーバと Set 操作

UNION ALL を除き、重複行は自動的に削除されます。

1 番目の問合せの列名が結果に表示されます。

UNION ALL を除き、デフォルトで出力は昇順にソートされます。

Oracle 問題27 / 30   REF:1Z0-051.30264


添付図の PROMOTIONS 表、SALES 表の構造を見てください。

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)

同じ結果を返す SQL 文は、次のどれですか?(2 つ選択して下さい)









解説:

Oracle 問題28 / 30   REF:1Z0-051.30266


次の 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


添付図の CUSTOMERS 表の構造を見てください。

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


副問合せの説明として正しいのは、次のどれですか?(2 つ選択して下さい)











解説:副問合せの定義

副問合せとは、SELECT、INSERT、UPDATE、DELETE 文または別の副問合せ内にネストされた問合せです。副問合せは、行セット、または 1 行のみを親問合せに返します。スカラ副問合せは、1 つの値のみ(1 行、1 列)を返す問合せです。スカラ副問合せは、SQL 文で式やリテラル値を使用するところなど、ほぼどこにでも使用できます。問合せ内で副問合せを使用できるところは以下の通りです。

列を選択する SELECT リスト内

FROM 句内

WHERE 句内

HAVING 句内

副問合せは、FROM 句では無制限にネストすることができますが、WHERE 句では 255 階層「しか」ネストできません。副問合せは、SELECT リストおよび問合せの FROM 句、WHERE 句、HAVING 句で使用できます。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。