11G oracle OCP 047題庫解析

賀子_DBA時代發表於2014-08-18

21. View the Exhibit and examine the details of the EMPLOYEES table.
Evaluate the following SQL statement:
SELECT phone_number,
REGEXP_REPLACE(phone_number,'([[:digit:]]{3})\.([[:digit:]]{3})\.([[:digit:]]{4})', '(\1) \2-\3')
"PHONE NUMBER"
FROM employees?
The query was written to format the PHONE_NUMBER for the employees. Which option would be the
correct format in the output?
REGEXP_REPLACE(    字串  ,               對字串進行匹配的正規表示式            , 對應輸出格式的正規表示式)
              (650.507.9833, '([[:digit:]]{3})\.([[:digit:]]{3})\.([[:digit:]]{4})',        '(\1) \2\3'      )
     (       [[:digit:]]    {3}        )          \.
子表示式開始 匹配任何數字 出現3次 子表示式結束 跳脫字元'.'         第一部分
                 650                                    .
     (       [[:digit:]]    {3}        )          \.
子表示式開始 匹配任何數字 出現3次 子表示式結束 跳脫字元'.'         第二部分
                 507                                    .
     (       [[:digit:]]    {4}        )
子表示式開始 匹配任何數字 出現4次 子表示式結束                     第三部分
                9833
(       \1         )                \2                -          \3
(前面匹配的第一部分) [空格] 前面匹配的第一部分        -  前面匹配的第一部分
(      650         )               507                -         9833
A. xxx-xxx-xxxx
B. (xxx) xxxxxxx
C. (xxx) xxx-xxxx(right)
'(\1) \2-\3'這個格式很說明問題
D. xxx-(xxx)-xxxx
 
 
 
 
22. Which statement correctly grants a system privilege?
A. GRANT EXECUTE ON proc1 TO PUBLIC
授予所有使用者執行過程proc1的許可權,這是物件許可權不是系統許可權
B. GRANT CREATE VIEW ON table1 TO user1
create view是系統許可權,沒有在某個表上的建立檢視的許可權,得到create view許可權和select on table物件許可權就可以建立到其他使用者的表的檢視
C. GRANT CREATE TABLE TO user1,user2(right)
GRANT 許可權名 TO 使用者(角色)1,使用者(角色)2
D. GRANT CREATE SESSION TO ALL
要想所有使用者授權是to public不是to all
 
 
 
 
23. View the Exhibit and examine the structure of the CUST table.
Evaluate the following SQL statements executed in the given order:
ALTER TABLE cust
ADD CONSTRAINT cust_id_pk PRIMARY KEY(cust_id) DEFERRABLE INITIALLY DEFERRED
INSERT INTO cust VALUES (1,'RAJ'); --row1
INSERT INTO cust VALUES (1,'SAM'); --row2
COMMIT;
此時PRIMARY KEY狀態DEFERRABLE INITIALLY DEFERRED,在commit是檢查約束,row1,row2一起提交,同時失敗
SET CONSTRAINT cust_id_pk IMMEDIATE;
此時PRIMARY KEY狀態DEFERRABLE INITIALLY IMMEDIATE,發出命令後立即檢查約束
INSERT INTO cust VALUES (1,'LATA'); --row3
發出命令檢查約束,執行成功
INSERT INTO cust VALUES (2,'KING'); --row4
發出命令檢查約束,執行成功
COMMIT;
提交成功
Which rows would be made permanent in the CUST table?
A. row 4 only
B. rows 2 and 4
C. rows 3 and 4(right)
D. rows 1 and 4
 
 
 
24. View the Exhibit and examine the structure of the ORDERS table:
The ORDER_ID column has the PRIMARY KEY constraint and CUSTOMER_ID has the NOT NULL
constraint.
Evaluate the following statement:
INSERT INTO (
              SELECT order_id,order_date,customer_id
              FROM ORDERS
              WHERE order_total = 1000
              WITH CHECK OPTION
            )
VALUES (13, SYSDATE, 101)
What would be the outcome of the above INSERT statement?
語句可理解為INSERT INTO(view) values()
當view帶有WITH CHECK OPTION時,要求對檢視的操作結果也要在檢視的範圍內,即(13,sysdate,101)要符合view各列的順序並且order_total = 1000
所以(13,sysdate,101)對應order_id,order_date,customer_id導致order_total沒有賦值,插入結果也就不會落在檢視範圍,違反了WITH CHECK OPTION約束,該語句將報錯
解決該錯誤的方法有:
1. 將where條件從order_total改為order_id,order_date,customer_id三者中的一個或幾個
2. 將order_total加入view中,使得insert時對應的order_total值為1000                 
A. It would execute successfully and the new row would be inserted into a new temporary table created by the subquery.
本語句不會正確執行,並且即使執行了,修改的也是view所基於的表,而不是這個子查詢所建立的臨時表
B. It would execute successfully and the ORDER_TOTAL column would have the value 1000 inserted automatically in the new row.
本語句不會正確執行,並且當插入資料時某一列沒有被指定,也沒有設定預設值時,系統不會將其設為特定值而是設為null
C. It would not execute successfully because the ORDER_TOTAL column is not specified in the SELECT list and no value is provided for it.(right)
D. It would not execute successfully because all the columns from the ORDERS table should have been included in the SELECT list and values should have been provided for all the columns.
view的WITH CHECK OPTION約束僅要求結果落在檢視範圍,並不要求檢視選擇表的全部列
 
 

25. View the Exhibit and examine the description of the EMPLOYEES table.
Your company wants to give 5% bonus to all the employees on their annual salary(年工資增加5%). The SALARY column stores the monthly salary(月工資) for an employee. To check the total for annual salary and bonus amount for each employee, you issued the following SQL statement:
SELECT first_name, salary, salary*12+salary*12*.05 "ANNUAL SALARY + BONUS"
FROM employees
Which statement is true regarding the above query?
A. It would execute and give you the desired output.(right)
B. It would not execute because the AS keyword is missing between the column name and the alias.
as關鍵字在ansi sql中被要求輸入,pl/sql中可以輸入也可以省略
C. It would not execute because double quotation marks are used instead of single quotation marks for assigning alias for the third column.
對列起別名時是使用雙引號來修飾而不是單引號
D. It would execute but the result for the third column would be inaccurate(不準確的) because the parentheses(括號) for overriding the precedence of the operator are missing
翻譯: 它能否被執行,但是第三列的結果將不準確,因為為了重寫優先順序的運算子的括號沒有了
解釋: x*1.05=x+x*0.05,顯然不用括號調整優先順序
 

26. Which statement is true regarding external tables?
A. The default REJECT LIMIT for external tables is UNLIMITED.
翻譯: 外部表的REJECT LIMIT預設值為UNLIMITED
解釋: 外部表的預設的REJECT LIMIT值為0
B. The data and metadata for an external table are stored outside the database.
翻譯: 外部表的資料和後設資料儲存在資料庫之外.
解釋: 外部表的資料的確儲存在資料庫之外,但是外部表的後設資料儲存在資料字典中才使得你可以訪問外部表
C. ORACLE_LOADER and ORACLE_DATAPUMP have exactly the same functionality when used with an external table.
翻譯: ORACLE_LOADER和ORACLE_DATAPUMP有完全一樣的功能,當用於外部表的時候
解釋: ORACLE_LOADER可以載入所有資料,ORACLE_DATAPUMP只能載入oracle特定的2進位制檔案*.dmp
D. The CREATE TABLE AS SELECT statement can be used to unload data into regular table in the database from an external table(right)
翻譯: CREATE TABLE AS SELECT語句可以用來將外部表的資料解除安裝到資料庫中正常的表裡
解釋: CREATE TABLE...ORGANIZATION EXTERNAL用來定義外部表,CREATE TABLE AS SELECT則將定義的外部表的資料裝載到資料庫內部的表,這樣就可以對錶進行insert,update,delete了
 
 
 
27. View the Exhibit and examine the structure of the PRODUCT_INFORMATION table.
You want to see the product names and the date of expiration(到期) of warranty(保修) for all the products, if the product is purchased(購買) today.
你想看product names和所有產品的保修到期日,假設產品是今天購買的.
The products that have no warranty should be displayed at the top and the products with maximum warranty period should be displayed at the bottom.
沒有保修的產品要顯示在頂端,保修期最大的產品顯示在底端.
product_information表warranty_period(保修期)列型別為interval year(2)tomonth
INTERVAL資料型別用來儲存兩個時間戳之間的時間間隔。可以指定years and months等
INTERVAL '10-2' YEAR(2) TO MONTH意思是10年2個月
本題考點就是排序
要求沒有保修的產品要顯示在頂端,保修期最大的產品顯示在底端.
就是以warranty_period進行升序排序,sysdate都是一樣的,所以warranty_period+sysdate也可以
Which SQL statement would you execute to fulfill this requirement?
A. SELECT product_name, category_id, SYSDATE+warranty_period AS "Warranty expire date"
   FROM product_information
   ORDER BY SYSDATE-warranty_period
解釋:應該按warranty_period升序排序,如果是按SYSDATE-warranty_period的話,要降序排序,使用desc字尾
B. SELECT product_name, category_id, SYSDATE+warranty_period AS "Warranty expire date"
   FROM product_information
   ORDER BY SYSDATE+warranty_period
right
C. SELECT product_name, category_id, SYSDATE+warranty_period AS "Warranty expire date"
   FROM product_information
   ORDER BY SYSDATE
解釋: SYSDATE是一致的,所以以SYSDATE排序沒有任何意義
D. SELECT product_name, category_id, SYSDATE+warranty_period "Warranty expire date"
   FROM product_information
   WHERE warranty_period >SYSDATE?
解釋:SYSDATE是當前時間戳,warranty_period是時間跨度,比較大小沒有意義
 

28. Which two statements are true regarding the EXISTS operator used in the correlated subqueries?
(Choose two.)
A. The outer query stops evaluating the result set of the inner query when the first value is found.(right)
翻譯: 外查詢停止評估內查詢的結果集,當第一個值被發現
B. It is used to test whether the values retrieved by the inner query exist in the result of the outer query.
翻譯: 他被用以試驗被內查詢檢索的值是否在外查詢的結果集中存在
C. It is used to test whether the values retrieved by the outer query exist in the result set of the inner query.(right)
翻譯: 他被用以試驗被外查詢檢索的值是否在內查詢的結果集中存在
D. The outer query continues evaluating the result set of the inner query until all the values in the result
翻譯: 外查詢繼續評估內查詢的結果集,直到評估完結果中全部的值

舉例:
select id, name,salary
from employees
where exists (
               select id
               from employees 
               where id in (1,2,3)'
             )
當內查詢select id from employees where id in (1,2,3)搜尋不到id為1或者2或者3的記錄時,內查詢返回false到外查詢
當內查詢select id from employees where id in (1,2,3)搜尋到第一個id為1或者2或者3的記錄時,內查詢直接彈回true外查詢
所以稱exists為半查詢
 

29. A noncorrelated(不相關的) subquery(子查詢)can be defined()定義 as ____.
A. a set of sequential queries, all of which must always return a single value
翻譯: 一個由連續的查詢組成的集合,所有的查詢必須總是返回一個值。
解釋: 如果外部查詢時in關鍵字,返回多個值也是可以的。
B. a set of sequential queries, all of which must return values from the same table
翻譯: 一個連續的查詢集,所有的查詢必須返回來自同一個表的值。
解釋: 不要求查詢的結果來自同一個表
C. a SELECT statement that can be embedded in a clause of another SELECT statement only
翻譯: 一個select語句,只能被嵌入另一個條件的select語句
解釋: 一個select語句巢狀在另一個select語句就是巢狀查詢,兩條語句條件一樣無非就是一個語句執行兩次而已
D. a set of one or more sequential queries in which generally the result of the inner query is used as the search value in the outer query.(right)
翻譯: 一個由一個或多個連續的查詢組成的集合,通常內查詢的結果被用來作為外查詢搜尋的值。
本題用排除法,A,B,C都有錯誤所以選D,實際上對於Correlated Subqueries和Noncorrelated Subqueries來說D都是正確的,因為D只是解釋了Subquery。
 
 
 
30. You need to create a table for a banking(金融) application(應用) with the following considerations(注意事項):
1) You want a column in the table to store the duration(持續時間) of the credit(貸款) period(時期).
你希望表中的一列儲存貸款期的持續時間(這是一個時間的跨度)
2) The data in the column should be stored in a format such that it can be easily added and subtracted with
列中的資料要以容易做加減的形式儲存
3) date type data without using the conversion functions.
日期型別的資料不使用轉換函式
4) The maximum period of the credit provision in the application is 30 days.
程式中提供的貸款最大期限為30天(時間跨度不超過30天,year to month太大,要使用day to second)
5) The interest has to be calculated for the number of days an individual has taken a credit for.
要計算個人獲得貸款的天數的利息
Which data type would you use for such a column in the table?
A. INTERVAL YEAR TO MONTH
時間跨度太大,題目要求不超過30天
B. INTERVAL DAY TO SECOND(right)
C. TIMESTAMP WITH TIME ZONE
TIMESTAMP是時間c戳,不是時間跨度
D. TIMESTAMP WITH LOCAL TIME ZONE
TIMESTAMP是時間c戳,不是時間跨度

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1253407/,如需轉載,請註明出處,否則將追究法律責任。

相關文章