ocp 1Z0-051 141-175题解析

141. View the Exhibitand examine the structure of CUSTOMERS and GRADES tables.

You need to displaynames and grades of customers who have the highest credit limit.

Which two SQL statementswould accomplish the task? (Choose two.)

A. SELECT custname,grade

FROM customers, grades

WHERE (SELECTMAX(cust_credit_limit)

FROM customers) BETWEENstartval and endval;

B. SELECT custname,grade

FROM customers, grades

WHERE (SELECT MAX(cust_credit_limit)

FROM customers)

ocp 1Z0-051 141-175题解析

A. SELECT custname,grade

FROM customers, grades

WHERE (SELECTMAX(cust_credit_limit)

FROM customers) BETWEENstartval and endval;

B. SELECT custname,grade

FROM customers, grades

WHERE (SELECTMAX(cust_credit_limit)

FROM customers) BETWEENstartval and endval

AND cust_credit_limitBETWEEN startval AND endval;

C. SELECT custname,grade

FROM customers, grades

WHERE cust_credit_limit= (SELECT MAX(cust_credit_limit)

FROM customers)

AND cust_credit_limitBETWEEN startval AND endval;

D. SELECT custname,grade

FROM customers , grades

WHERE cust_credit_limitIN (SELECT MAX(cust_credit_limit)

FROM customers)

ANDMAX(cust_credit_limit) BETWEEN startval AND endval;

Answer: BC

解析:

题意:You need to display names and grades of customers whohave the highest credit limit 意思要求找出最高credit limit 但是须在startval endval 之间,执行where后的条件从右到左

142. View the Exhibitand examine the structure of the PRODUCTS table.

Evaluate the followingquery:

SQL> SELECT prod_name

FROM products

WHERE prod_id IN (SELECTprod_id FROM products

WHERE prod_list_price =

(SELECT MAX(prod_list_price)FROM products

WHERE prod_list_price <

(SELECT MAX(prod_list_price)FROM products)));

What would be theoutcome of executing the above SQL statement?

ocp 1Z0-051 141-175题解析

A. It produces an error.

B. It shows the names ofall products in the table.

C. It shows the names ofproducts whose list price is the second highest in the table.

D. It shows the names ofall products whose list price is less than the maximum list price.

Answer: C

解析:

(SELECT MAX(prod_list_price)FROMproducts

WHERE prod_list_price<

(SELECTMAX(prod_list_price)FROM products))

从小于最大价格的结果集找最大的结果,那就是第二大的

143. View the Exhibitand examine the structure of the PROMOTIONS table.

You have to generate areport that displays the promo name and start date for all promos that startedafter

the last promo in the'INTERNET' category.

Which query would giveyou the required output?

ocp 1Z0-051 141-175题解析

A. SELECT promo_name,promo_begin_date FROM promotions

WHERE promo_begin_date> ALL (SELECT MAX(promo_begin_date)

FROM promotions )AND

promo_category ='INTERNET';

B. SELECT promo_name,promo_begin_date FROM promotions

WHERE promo_begin_dateIN (SELECT promo_begin_date

FROM promotions

WHEREpromo_category='INTERNET');

C. SELECT promo_name,promo_begin_date FROM promotions

WHERE promo_begin_date> ALL (SELECT promo_begin_date

FROM promotions

WHERE promo_category ='INTERNET');

D. SELECT promo_name,promo_begin_date FROM promotions

WHERE promo_begin_date> ANY (SELECT promo_begin_date

FROM promotions

WHERE promo_category ='INTERNET');

Answer: C

解析:

(SELECT promo_begin_date

FROM promotions

WHERE promo_category ='INTERNET');

得到类别为internet的所有promo_begin_date

SELECT promo_name,promo_begin_date FROM promotions

WHERE promo_begin_date> ALL (SELECT promo_begin_date

FROM promotions

WHERE promo_category ='INTERNET');

大于所有的类别为internet的所有promo_begin_date,即大于最大的,也就是最近的

时间的比较,越大说明离当前时间越近

144. View the Exhibitand examine the structure of the PRODUCTS table.

You want to display thecategory with the maximum number of items.

You issue the followingquery:

SQL>SELECTCOUNT(*),prod_category_id

FROM products

GROUP BYprod_category_id

HAVING COUNT(*) =(SELECT MAX(COUNT(*)) FROM products);

What is the outcome?

ocp 1Z0-051 141-175题解析

A. It executessuccessfully and gives the correct output.

B. It executessuccessfully but does not give the correct output.

C. It generates an errorbecause the subquery does not have a GROUP BY clause.

D. It generates an errorbecause = is not valid and should be replaced by the IN operator.

Answer: C

解析:

子查询用在group by 后面是错误的

145. View the Exhibitand examine the structure of the CUSTOMERS table.

You issue the followingSQL statement on the CUSTOMERS table to display the customers who are in the

same country ascustomers with the last name 'KING' and whose credit limit is less than themaximum

credit limit incountries that have customers with the last name 'KING':

SQL> SELECTcust_id,cust_last_name

FROM customers

WHERE country_idIN(SELECT country_id

FROM customers

WHERE cust_last_name='King')

AND cust_credit_limit< (SELECT MAX(cust_credit_limit)

FROM customers

WHERE country_idIN(SELECT country_id

FROM customers

WHEREcust_last_name='King'));

Which statement is trueregarding the outcome of the above query?

ocp 1Z0-051 141-175题解析

A. It executes and showsthe required result.

B. It produces an errorand the < operator should be replaced by < ALL to get the requiredoutput.

C. It produces an errorand the < operator should be replaced by < ANY to get the requiredoutput.

D. It produces an errorand the IN operator should be replaced by = in the WHERE clause of the main

query to get therequired output.

Answer: A

解析:

题意:

display the customerswho are in the

same country as customerswith the last name 'KING' andwhose
credit limit isless than the maximum

credit limit incountries that have customers with the last name 'KING':

customers withthe last name 'KING'

WHERE country_idIN(SELECT country_id

FROM customers

WHERE cust_last_name='King')

找到所有cust_last_name为king的

whose creditlimit is less than the maximum

credit limitin countries that have customers with the last name 'KING':

cust_credit_limit小于last name 为king中最大的cust
_credit_limit

cust_credit_limit <(SELECT MAX(cust_credit_limit)

FROM customers

WHERE country_idIN(SELECT country_id

FROM customers

WHERE cust_last_name='King'));

146. Evaluate thefollowing SQL statement:

SQL> SELECT cust_id,cust_last_name

FROM customers

WHERE cust_credit_limitIN

(selectcust_credit_limit

FROM customers

WHERE cust_city='Singapore');

Which statement is trueregarding the above query if one of the values generated by the subquery is

NULL?

A. It produces an error.

B. It executes butreturns no rows.

C. It generates outputfor NULL as well as the other values produced by the subquery.

D. It ignores the NULLvalue and generates output for the other values produced by the subquery.

Answer: C

解析:

In 如果子查询中得到部分行为空,则只会返回不为空的行,测试:

scott@ORCL>select *from emp where sal<2000;

EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM    DEPTNO

---------- ---------- ------------------- -------- ---------- ---------- ----------

7369 SMITH      CLERK           7902 17-12-80        968                    20

7499 ALLEN      SALESMAN        7698 20-02-81       1600        160         30

7521 WARD       SALESMAN        7698 22-02-81       1250        500         30

7654 MARTIN     SALESMAN        7698 28-09-81       1250       1400         30

7788 SCOTT      ANALYST         7566 19-04-87       1850                    20

7844 TURNER     SALESMAN        7698 08-09-81       1500          0         30

7876 ADAMS      CLERK           7788 23-05-87       1100                    20

7900 JAMES      CLERK           7698 03-12-81        950                    30

7934 MILLER     CLERK           7782 23-01-82       1430                    10

已选择9行。

scott@ORCL>select *from emp where comm in (select comm from emp where sal<2000);

EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM    DEPTNO

---------- ------------------- ---------- -------- ---------- ---------- ----------

7499 ALLEN      SALESMAN        7698 20-02-81       1600        160         30

7521 WARD       SALESMAN        7698 22-02-81       1250        500         30

7654 MARTIN     SALESMAN        7698 28-09-81       1250       1400         30

7844 TURNER     SALESMAN        7698 08-09-81       1500          0         30

如果是not in 需要对子查询结果中的空值做处理,否则会全部返回空

147. View the Exhibitand examine the structure of the PROMOTIONS table.

Evaluate the followingSQL statement:

SQL>SELECTpromo_name,CASE

WHEN promo_cost>=(SELECT AVG(promo_cost)

FROM promotions

WHEREpromo_category='TV')

then 'HIGH'

else 'LOW'

END COST_REMARK

FROM promotions;

Which statement is trueregarding the outcome of the above query?

ocp 1Z0-051 141-175题解析

A. It shows COST_REMARKfor all the promos in the table.

B. It produces an errorbecause the subquery gives an error.

C. It shows COST_REMARKfor all the promos in the promo category 'TV'.

D. It produces an errorbecause subqueries cannot be used with the CASE expression.

Answer: A

解析:

CASE

WHEN promo_cost>=(SELECT AVG(promo_cost)

FROM promotions

WHEREpromo_category='TV')

then 'HIGH'

else 'LOW'

END COST_REMARK

如果大于显示为 HIGH 否则显示为LOW  所以所有的promos将会显示出来

148. View the Exhibitand examine the structure of the PRODUCTS tables.

You want to generate areport that displays the average list price of product categories where theaverage

list price is less thanhalf the maximum in each category.

Which query would give thecorrect output?

ocp 1Z0-051 141-175题解析

A. SELECTprod_category,avg(prod_list_price)

FROM products

GROUP BY prod_category

HAVINGavg(prod_list_price) < ALL

(SELECTmax(prod_list_price)/2

FROM products

GROUP BY prod_category);

B. SELECTprod_category,avg(prod_list_price)

FROM products

GROUP BY prod_category

HAVINGavg(prod_list_price) > ANY

(SELECTmax(prod_list_price)/2

FROM products

GROUP BY prod_category);

C. SELECTprod_category,avg(prod_list_price)

FROM products

HAVINGavg(prod_list_price) < ALL

(SELECTmax(prod_list_price)/2

FROM products

GROUP BY prod_category);

D. SELECTprod_category,avg(prod_list_price)

FROM products

GROUP BY prod_category

HAVINGavg(prod_list_price) > ANY

(SELECTmax(prod_list_price)/2

FROM products);

Answer: A

解析:

题意:generate a reportthat displays the average list price of product categorieswhere the average
list price is less than half the maximum in each category.

average listprice is less than half the maximum in each category.

avg(prod_list_price)< ALL

(SELECTmax(prod_list_price)/2

FROM products

GROUP BY prod_category);

e average listprice of product categories

需要以类别分组

所以:

SELECTprod_category,avg(prod_list_price)

FROM products

GROUP BY prod_category

HAVINGavg(prod_list_price) < ALL

(SELECTmax(prod_list_price)/2

FROM products

GROUP BY prod_category);

149. View the Exhibitsand examine the structures of the COSTS and PROMOTIONS tables.

Evaluate the followingSQL statement:

SQL> SELECT prod_idFROM costs

WHERE promo_id IN(SELECT promo_id FROM promotions

WHERE promo_cost <ALL

(SELECT MAX(promo_cost)FROM promotions

GROUP BY(promo_end_datepromo_

begin_date)));

What would be theoutcome of the above SQL statement?

A. It displays prod IDsin the promo with the lowest cost.

B. It displays prod IDsin the promos with the lowest cost in the same time interval.

C. It displays prod IDsin the promos with the highest cost in the same time interval.

D. It displays prod IDsin the promos with cost less than the highest cost in the same time interval.

Answer: D

解析:

GROUP BY (promo_end_datepromo_

begin_date)

表示以这个时间段分组

150. View the Exhibitand examine the data in the PROMOTIONS table.

You need to display allpromo categories that do not have 'discount' in their subcategory.

Which two SQL statementsgive the required result? (Choose two.)

ocp 1Z0-051 141-175题解析

A. SELECTpromo_category

FROMpromotions

MINUS

SELECTpromo_category

FROMpromotions

WHEREpromo_subcategory = 'discount';

B. SELECTpromo_category

FROMpromotions

INTERSECT

SELECTpromo_category

FROMpromotions

WHEREpromo_subcategory = 'discount';

C. SELECTpromo_category

FROMpromotions

MINUS

SELECTpromo_category

FROMpromotions

WHEREpromo_subcategory <> 'discount';

D. SELECTpromo_category

FROMpromotions

INTERSECT

SELECTpromo_category

FROMpromotions

WHEREpromo_subcategory <> 'discount';

Answer: AD

解析:

MINUS,引用官方文档:

The following statementcombines results with the MINUS operator,

which returns onlyunique rows returned by the first query but not by the second:

INTERSECT

这个值要存在于第一句和第二句才会被选出,相当于两个查询的结果的交集

151. View the Exhibitand examine the structure of the CUSTOMERS and CUST_HISTORY tables.

The CUSTOMERS tablecontains the current location of all currently active customers. The

CUST_HISTORY tablestores historical details relating to any changes in the location of allcurrent as well

as previous customerswho are no longer active with the company.

You need to find thosecustomers who have never changed their address.

Which SET operator wouldyou use to get the required output?

ocp 1Z0-051 141-175题解析

A. MINUS

B. UNION

C. INTERSECT

D. UNION ALL

Answer: A

解析:

题意:find thosecustomers who have never changed their address

所有的customers减去已经改变地址customers就等于没有改变地址的顾客

所以用运算符 minus,引用官方文档:

The followingstatement combines results with the MINUS operator,

which returnsonly unique rows returned by the first query but not by the second:

152. Which statement istrue regarding the UNION operator?

A. By default, theoutput is not sorted.

B. NULL values are notignored during duplicate checking.

C. Names of all columnsmust be identical across all SELECT statements.

D. The number of columnsselected in all SELECT statements need not be the same.

Answer: B

解析:

引用官方文档:

UNION Example The following statement combines the results of two queries with

the UNION operator,which eliminates duplicate selected rows. This statement shows

that you must match datatype (using the TO_CHAR function) when columns do not

exist in one or theother table:

SELECT location_id,department_name "Department",

TO_CHAR(NULL)"Warehouse" FROM departments

UNION

SELECT location_id,TO_CHAR(NULL) "Department", warehouse_name

FROM warehouses;

LOCATION_ID DepartmentWarehouse

----------------------------------------- ---------------------------

1400 IT

1400 Southlake, Texas

1500 Shipping

1500 San Francisco

1600 New Jersey

153. View the Exhibitsand examine the structures of the PRODUCTS and SALES tables.

Which two SQL statementswould give the same output? (Choose two.)

A. SELECT prod_id FROMproducts

INTERSECT

SELECT prod_id FROMsales;

B. SELECT prod_id FROMproducts

MINUS

SELECT prod_id FROMsales;

C. SELECT DISTINCTp.prod_id

FROM products pJOIN sales s

ONp.prod_id=s.prod_id;

D. SELECT DISTINCTp.prod_id

FROM products p JOINsales s

ON p.prod_id <>s.prod_id;

Answer: AC

解析:

INTERSECT

这个值要存在于第一句和第二句才会被选出,相当于两个查询的结果的交集

所以A选项的结果是

SELECT prod_id FROMproducts

SELECT prod_id FROMsales;

结果的交集

C. SELECT DISTINCTp.prod_id

FROM products p JOINsales s

ON p.prod_id=s.prod_id;

同样是得到交集,并且去除重复的结果

154. View the Exhibitand evaluate structures of the SALES, PRODUCTS, and COSTS tables.

Evaluate the followingSQL statement:

SQL>SELECT prod_idFROM products

INTERSECT

SELECT prod_id FROMsales

MINUS

SELECT prod_id FROMcosts;

Which statement is trueregarding the above compound query?

A. It produces an error.

B. It shows productsthat were sold and have a cost recorded.

C. It shows productsthat were sold but have no cost recorded.

D. It shows productsthat have a cost recorded irrespective of sales.

Answer: C

解析:

INTERSECT

这个值要存在于第一句和第二句才会被选出,相当于两个查询的结果的交集

Minus,引用官方文档:

The following statementcombines results with the MINUS operator,

which returns onlyunique rows returned by the first query but not by the second:

取得product和sales表的交集,说明已经被销售出去

再减去costs表中对prod_id的记录,所以最终得到被销售出了的产品,但是没有价格记录

155. Evaluate thefollowing SQL statement:

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';

Which statement is trueregarding the outcome of the above query?

A. It executessuccessfully and displays rows in the descending order of PROMO_CATEGORY.

B. It produces an errorbecause positional notation cannot be used in the ORDER BY clause with SET

operators.

C. It executessuccessfully but ignores the ORDER BY clause because it is not located at theend of the

compound statement.

D. It produces an errorbecause the ORDER BY clause should appear only at the end of a compound

query-that is, with thelast SELECT statement.

Answer: D

解析:

Order by 不能用在此位置,测试:

scott@ORCL>selectempno,ename from emp where job='CLERK' order by 2 union select empno,ename fromemp where job='SALESMAN';

select empno,ename fromemp where job='CLERK' order by 2 union select empno,ename from emp wherejob='SALESMAN'

*

第 1 行出现错误:

ORA-00933: SQL 命令未正确结束

Answer: D

156. Evaluate thefollowing SQL statement:

SQL> SELECT cust_id,cust_last_name "Last Name"

FROM customers

WHERE country_id = 10

UNION

SELECT cust_id CUST_NO,cust_last_name

FROM customers

WHERE country_id = 30;

Which ORDER BY clausesare valid for the above query? (Choose all that apply.)

A. ORDER BY 2,1

B. ORDER BY CUST_NO

C. ORDER BY 2,cust_id

D. ORDER BY"CUST_NO"

E. ORDER BY "LastName"

Answer: ACE

解析:

Order by 后面不能使用别名

Order by 1 表示以第一列进行排序

157. View the Exhibitand examine the structure of the ORDERS and CUSTOMERS tables.

Evaluate the followingSQL command:

SQL> SELECTo.order_id, c.cust_name, o.order_total, c.credit_limit

FROM orders o JOINcustomers c

USING (customer_id)

WHERE o.order_total >c.credit_limit

FOR UPDATE

ORDER BY o.order_id;

Which two statements aretrue regarding the outcome of the above query? (Choose two.)

ocp 1Z0-051 141-175题解析

A. It locks all the rowsthat satisfy the condition in the statement.

B. It locks only thecolumns that satisfy the condition in both the tables.

C. The locks arereleased only when a COMMIT or ROLLBACK is issued.

D. The locks arereleased after a DML statement is executed on the locked rows.

Answer: AC

解析:

引用官方文档:

The FOR UPDATE clauselets you lock the selected rows so that other users cannot lock

or update the rows untilyou end your transaction. You can specify this clause only in

a top-level SELECTstatement, not in subqueries.

当然提交或者回滚将释放该锁

158. Which statementsare true regarding the FOR UPDATE clause in a SELECT statement? (Choose all

that apply.)

A. It locks only thecolumns specified in the SELECT list.

B. It locks the rowsthat satisfy the condition in the SELECT statement.

C. It can be used only inSELECT statements that are based on a single table.

D. It can be used inSELECT statements that are based on a single or multiple tables.

E. After it is enforcedby a SELECT statement, no other query can access the same rows until a

COMMIT or ROLLBACK isissued.

Answer: BD

解析:

同上题

159. View the Exhibitand examine the structure of the CUSTOMERS table.

NEW_CUSTOMERS is a newtable with the columns CUST_ID, CUST_NAME and CUST_CITY that

have the same data typesand size as the corresponding columns in the CUSTOMERS table.

Evaluate the followingINSERT statement:

INSERT INTOnew_customers (cust_id, cust_name, cust_city)

VALUES(SELECTcust_id,cust_first_name' 'cust_last_name,cust_city

FROM customers

WHERE cust_id >23004);

The INSERT statementfails when executed. What could be the reason?

ocp 1Z0-051 141-175题解析

A. The VALUES clausecannot be used in an INSERT with a subquery.

B. Column names in theNEW_CUSTOMERS and CUSTOMERS tables do not match.

C. The WHERE clausecannot be used in a subquery embedded in an INSERT statement.

D. The total number ofcolumns in the NEW_CUSTOMERS table does not match the total number of

columns in the CUSTOMERStable.

Answer: A

解析:

这里不能用子查询的结果插入的到表中

160. View the Exhibitand examine the structure of ORDERS and CUSTOMERS tables.

There is only one customerwith the cust_last_name column having value Roberts. Which INSERT

statement should be usedto add a row into the ORDERS table for the customer whose

CUST_LAST_NAME isRoberts and CREDIT_LIMIT is 600?

ocp 1Z0-051 141-175题解析

A. INSERT INTO orders

VALUES (1,'10-mar-2007','direct',

(SELECT customer_id

FROM customers

WHEREcust_last_name='Roberts' AND

credit_limit=600),1000);

B. INSERT INTO orders(order_id,order_date,order_mode,

(SELECT customer_id

FROM customers

WHEREcust_last_name='Roberts' AND

credit_limit=600),order_total)

VALUES(1,'10-mar-2007','direct', &&customer_id, 1000);

C. INSERT INTO(SELECTo.order_id, o.order_date,o.order_mode,c.customer_id, o.order_total

FROM orders o, customersc

WHERE o.customer_id =c.customer_id

ANDc.cust_last_name='Roberts' ANDc.credit_limit=600 )

VALUES (1,'10-mar-2007','direct',(SELECT customer_id

FROM customers

WHEREcust_last_name='Roberts' AND

credit_limit=600),1000);

D. INSERT INTO orders(order_id,order_date,order_mode,

(SELECT customer_id

FROM customers

WHERE cust_last_name='Roberts'AND

credit_limit=600),order_total)

VALUES(1,'10-mar-2007','direct', &customer_id, 1000);

Answer: A

解析:

A选项中

INSERT INTO orders

VALUES (1,'10-mar-2007','direct',

(SELECTcustomer_id

FROM customers

WHEREcust_last_name='Roberts' AND

credit_limit=600), 1000);

这里将(SELECTcustomer_id

FROM customers

WHEREcust_last_name='Roberts' AND

credit_limit=600)得到的结果作为相应列插入到orders表中

161. View the exhibitand examine the description for the SALES and CHANNELS tables.

You issued the followingSQL statement to insert a row in the SALES table:

INSERT INTO sales VALUES

(23, 2300, SYSDATE,(SELECT channel_id

FROM channels

WHEREchannel_desc='Direct Sales'), 12, 1, 500);

Which statement is trueregarding the execution of the above statement?

ocp 1Z0-051 141-175题解析

A. The statement willexecute and the new row will be inserted in the SALES table.

B. The statement willfail because subquery cannot be used in the VALUES clause.

C. The statement willfail because the VALUES clause is not required with subquery.

D. The statement willfail because subquery in the VALUES clause is not enclosed with in singlequotation

marks .

Answer: A

解析:

同上题,将查询的结果最为相应列,所以能正确执行

162. View the Exhibitand examine the structure of the PRODUCTS, SALES, and SALE_SUMMARY

tables.

SALE_VW is a view createdusing the following command :

SQL>CREATE VIEWsale_vw AS

SELECT prod_id,SUM(quantity_sold) QTY_SOLD

FROM sales GROUP BYprod_id;

You issue the followingcommand to add a row to the SALE_SUMMARY table :

SQL>INSERT INTOsale_summary

SELECT prod_id, prod_name,qty_sold FROM sale_vw JOIN products

USING (prod_id) WHEREprod_id = 16;

What is the outcome?

ocp 1Z0-051 141-175题解析

A. It executessuccessfully.

B. It gives an errorbecause a complex view cannot be used to add data into the SALE_SUMMARY table.

C. It gives an error becausethe column names in the subquery and the SALE_SUMMARY table do not

match.

D. It gives an errorbecause the number of columns to be inserted does not match with the number of

columns in theSALE_SUMMARY table.

Answer: D

解析:

这里插入行数和sale_summary表中的行数不一样会导致错误,测试:

scott@ORCL>insertinto zbcxy select empno from emp;

insert into zbcxy selectempno from emp

*

第 1 行出现错误:

ORA-00947: 没有足够的值

163. View the Exhibitand examine the description for the CUSTOMERS table.

You want to update the CUST_CREDIT_LIMITcolumn to NULL for all the customers, where

CUST_INCOME_LEVEL hasNULL in the CUSTOMERS table. Which SQL statement will accomplish the

task?

ocp 1Z0-051 141-175题解析

A. UPDATE customers

SET cust_credit_limit =NULL

WHERE CUST_INCOME_LEVEL= NULL;

B. UPDATE customers

SET cust_credit_limit =NULL

WHERE cust_income_levelIS NULL;

C. UPDATE customers

SET cust_credit_limit =TO_NUMBER(NULL)

WHERE cust_income_level= TO_NUMBER(NULL);

D. UPDATE customers

SET cust_credit_limit =TO_NUMBER(' ',9999)

WHERE cust_income_levelIS NULL;

Answer: B

解析:

题意:update theCUST_CREDIT_LIMIT column to NULL for all the customers, where

CUST_INCOME_LEVEL hasNULL in the CUSTOMERS table

意思是将CUST_INCOME_LEVEL为空的列对应的CUST_CREDIT_LIMIT全部更新为null

获得CUST_INCOME_LEVEL为空的列

cust_income_level ISNULL

164. View the Exhibitand examine the structure of CUSTOMERS and SALES tables.

Evaluate the followingSQL statement:

UPDATE (SELECT prod_id,cust_id, quantity_sold, time_id

FROM sales)

SET time_id ='22-MAR-2007'

WHERE cust_id = (SELECTcust_id

FROM customers

WHERE cust_last_name ='Roberts' AND

credit_limit = 600);

Which statement is trueregarding the execution of the above UPDATE statement?

ocp 1Z0-051 141-175题解析

A. It would not executebecause two tables cannot be used in a single UPDATE statement.

B. It would not executebecause the SELECT statement cannot be used in place of the table name.

C. It would execute andrestrict modifications to only the columns specified in the SELECT statement.

D. It would not executebecause a subquery cannot be used in the WHERE clause of an UPDATE

statement.

Answer: C

解析:

测试:

scott@ORCL>update(select empno,ename from zbcxy) set ename='zbcxy' where empno>7000;

已更新14行。

说明这种方式可以更新表

165. View the Exhibitand examine the description for the CUSTOMERS table.

You want to update theCUST_INCOME_LEVEL and CUST_CREDIT_LIMIT columns for the customer

with the CUST_ID 2360.You want the value for the CUST_INCOME_LEVEL to have the same value as

that of the customerwith the CUST_ID 2560 and the CUST_CREDIT_LIMIT to have the same value as

that of the customerwith CUST_ID 2566.

Which UPDATE statementwill accomplish the task?

ocp 1Z0-051 141-175题解析

A. UPDATE customers

SET cust_income_level =(SELECT cust_income_level

FROM customers

WHERE cust_id = 2560),

cust_credit_limit =(SELECT cust_credit_limit

FROM customers

WHERE cust_id = 2566)

WHERE cust_id=2360;

B. UPDATE customers

SET(cust_income_level,cust_credit_limit) = (SELECT

cust_income_level,cust_credit_limit

FROM customers

WHERE cust_id=2560 ORcust_id=2566)

WHERE cust_id=2360;

C. UPDATE customers

SET(cust_income_level,cust_credit_limit) = (SELECT

cust_income_level,cust_credit_limit

FROM customers

WHERE cust_id IN(2560,2566)

WHERE cust_id=2360;

D. UPDATE customers

SET(cust_income_level,cust_credit_limit) = (SELECT

cust_income_level,cust_credit_limit

FROM customers

WHERE cust_id=2560 ANDcust_id=2566)

WHERE cust_id=2360;

Answer: A

解析:

题意:You want thevalue for the CUST_INCOME_LEVEL to have the same value as

that of the customerwith the CUST_ID 2560 and the CUST_CREDIT_LIMIT to have the same value as

that of the customerwith CUST_ID 2566.

意思是要更新的CUST_INCOME_LEVEL要和CUST_ID 2560的CUST_INCOME_LEVEL一样

更新的CUST_CREDIT_LIMIT要和CUST_ID 2566的CUST_CREDIT_LIMIT一样

所以需要两个子查询将CUST_ID 2560的CUST_INCOME_LEVEL和CUST_ID 2566的CUST_CREDIT_LIMIT查询出来再设置为对应值

166. View the Exhibitand examine the structures of the EMPLOYEES and DEPARTMENTS tables.

You want to update theEMPLOYEES table as follows:4 ? 4;

-Update only thoseemployees who work in Boston or Seattle (locations 2900 and 2700).

-Set department_id forthese employees to the department_id corresponding to London (location_id

2100).

-Set the employees'salary in location_id 2100 to 1.1 times the average salary of their department.

-Set the employees'commission in location_id 2100 to 1.5 times the average commission of their

department.

You issue the followingcommand:

SQL>UPDATE employees

SET department_id =

(SELECT department_id

FROM departments

WHERE location_id =2100),

(salary, commission) =

(SELECT 1.1*AVG(salary),1.5*AVG(commission)

FROM employees,departments

WHEREdepartments.location_id IN(2900,2700,2100))

WHERE department_id IN

(SELECT department_id

FROM departments

WHERE location_id = 2900

OR location_id = 2700)

What is the outcome?

ocp 1Z0-051 141-175题解析

A. It executessuccessfully and gives the correct result.

B. It executessuccessfully but does not give the correct result.

C. It generates an errorbecause a subquery cannot have a join condition in an UPDATE statement.

D. It generates an errorbecause multiple columns (SALARY, COMMISION) cannot be specified together

in an UPDATE statement.

Answer: B

解析:

无语法错误

WHEREdepartments.location_id IN(2900,2700,2100)

条件给错,WHEREdepartments.location_id=2100

167. Evaluate thefollowing DELETE statement:

DELETE FROM sales;

There are no otheruncommitted transactions on the SALES table.

Which statement is trueabout the DELETE statement?

A. It would not removethe rows if the table has a primary key.

B. It removes all therows as well as the structure of the table.

C. It removes all therows in the table and deleted rows can be rolled back.

D. It removes all therows in the table and deleted rows cannot be rolled back.

Answer: C

解析:

含有主键的列一样可以删除

Delete 操作不会删除表结构

Delete操作可以回滚

168. View the Exhibitand examine the description of SALES and PROMOTIONS tables.

You want to delete rowsfrom the SALES table, where the PROMO_NAME column in the PROMOTIONS

table has either blowoutsale or everyday low price as values.

Which DELETE statementsare valid? (Choose all that apply.)

ocp 1Z0-051 141-175题解析

A. DELETE

FROM sales

WHERE promo_id = (SELECTpromo_id

FROM promotions

WHERE promo_name ='blowout sale')

AND promo_id = (SELECTpromo_id

FROM promotions

WHERE promo_name ='everyday low price');

B. DELETE

FROM sales

WHERE promo_id = (SELECTpromo_id

FROM promotions

WHERE promo_name ='blowout sale')

OR promo_id = (SELECTpromo_id

FROM promotions

WHERE promo_name ='everyday low price');

C. DELETE

FROM sales

WHERE promo_id IN(SELECT promo_id

FROM promotions

WHERE promo_name ='blowout sale'

OR promo_name ='everyday low price');

D. DELETE

FROM sales

WHERE promo_id IN(SELECT promo_id

FROM promotions

WHERE promo_name IN('blowout sale','everyday low price'));

Answer: BCD

解析:

题意:You want to delete rows from the SALES table, where thePROMO_NAME column in the PROMOTIONS  tablehas either blowout sale oreveryday
low price
 as values.

意思要求找出promo_name 为blowout sale或everyday lowprice的

所以

B,C,D选项正确

169. View the Exhibitand examine the description for the PRODUCTS and SALES table.

PROD_ID is a primary keyin the PRODUCTS table and foreign key in the SALES table. You want to

remove all the rows fromthe PRODUCTS table for which no sale was done for the last three years.

Which is the validDELETE statement?

ocp 1Z0-051 141-175题解析

A. DELETE

FROM products

WHERE prod_id = (SELECTprod_id

FROM sales

WHERE time_id - 3*365 =SYSDATE );

B. DELETE

FROM products

WHERE prod_id = (SELECTprod_id

FROM sales

WHERE SYSDATE >=time_id - 3*365 );

C. DELETE

FROM products

WHERE prod_id IN (SELECTprod_id

FROM sales

WHERE SYSDATE - 3*365>= time_id);

D. DELETE

FROM products

WHERE prod_id IN (SELECTprod_id

FROM sales

WHERE time_id >=SYSDATE - 3*365 );

Answer: C

解析:

这里主要考察了时间的顺序,时间越大,离当前时间越近,所以需要sysdate-3*365>=time_id

170. Which twostatements are true regarding the DELETE and TRUNCATE commands? (Choose two.)

A. DELETE can be used toremove only rows from only one table at a time.

B. DELETE can be used toremove only rows from multiple tables at a time.

C. DELETE can be usedonly on a table that is a parent of a referential integrity constraint.

D. DELETE can be used toremove data from specific columns as well as complete rows.

E. DELETE and TRUNCATEcan be used on a table that is a parent of a referential integrityconstraint

having ON DELETE rule .

Answer: AE

解析:

B选项,Delete操作在同一时间只能对一个表进行删除

C选项,delete还可以删除其他表

D选项,delete只能删除行级数据,不能删除列

172. The SQL statementsexecuted in a user session are as follows:

SQL> CREATE TABLEproduct

(pcode NUMBER(2),

pname VARCHAR2(10));

SQL> INSERT INTOproduct VALUES (1, 'pen');

SQL> INSERT INTOproduct VALUES (2,'pencil');

SQL> SAVEPOINT a;

SQL> UPDATE product SETpcode = 10 WHERE pcode = 1;

SQL> SAVEPOINT b;

SQL> DELETE FROMproduct WHERE pcode = 2;

SQL> COMMIT;

SQL> DELETE FROMproduct WHERE pcode=10;

Which two statementsdescribe the consequences of issuing the ROLLBACK TO SAVE POINT a

command in the session?(Choose two.)

A. The rollbackgenerates an error.

B. No SQL statements arerolled back.

C. Only the DELETEstatements are rolled back.

D. Only the secondDELETE statement is rolled back.

E. Both the DELETEstatements and the UPDATE statement are rolled back.

Answer: AB

解析:

因为已经提交,所以无法做rollback操作

173. When does atransaction complete? (Choose all that apply.)

A. when a DELETEstatement is executed

B. when a ROLLBACKcommand is executed

C. when a PL/SQLanonymous block is executed

D. when a datadefinition language ( DDL) statement is executed

E. when a TRUNCATEstatement is executed after the pending transaction

Answer: BDE

解析:

A选项,delete操作后可以回滚,所以事务未完成

C选项,pl/sql匿名块执行后,也可以回滚

174. Which statement istrue regarding transactions? (Choose all that apply.)

A. A transaction canconsist only of a set of DML and DDL statements.

B. A p art or an entiretransaction can be undone by using ROLLBACK command .

C. A transactionconsists of a set of DML or DCL statements.

D. A part or an entiretransaction can be made permanent with a COMMIT.

E. A transaction canconsist of only a set of queries or DML or DDL statements.

Answer: BC

解析:

A选项,事务只能是dml或DCL语句组成

D选项,违反事务原子性

E选项和A选项原因一样

175. Which twostatements are true regarding savepoints? (Choose two.)

A. Savepoints are effectiveonly for COMMIT.

B. Savepoints may beused to ROLLBACK.

C. Savepoints can beused for only DML statements.

D. Savepoints areeffective for both COMMIT and ROLLBACK.

E. Savepoints can beused for both DML and DDL statements.

Answer: BC

解析:

A选项,应该是rollback

D选项和C选项原因一样

E选项,不能用于ddl

上一篇:Android 采用get方式提交数据到服务器


下一篇:vmware RHEL6.x 开启FTP和TELNET服务--root权限