การสร้างคำถามอื่น ๆ ของ Schema Objects

1. Which database object among the following provides a layer of abstraction between the users and the data?

  1. Table
  2. Rows
  3. Views
  4. Synonyms

Answer: C, D. มุมมองและคำพ้องความหมายไม่ได้จัดเก็บข้อมูลด้วยตนเอง มุมมองคือตารางชั่วคราวหรือเสมือนที่ใช้ในการดึงข้อมูลที่จัดเก็บในตารางฐานข้อมูลที่อยู่เบื้องหลัง

2. Which of the following data base objects can generate serial numbers?

  1. Synonyms
  2. Views
  3. Tables
  4. Sequences

Answer: D. สามารถสร้างลำดับเพื่อสร้างชุดของจำนวนเต็ม ค่าที่สร้างโดยลำดับสามารถเก็บไว้ในตารางใดก็ได้ ลำดับถูกสร้างขึ้นด้วยคำสั่ง CREATE SEQUENCE

3. What is true about views?

  1. พวกมันเท่ากับตาราง
  2. พวกเขาจัดเก็บข้อมูลจากตารางเดียวหรือหลายตาราง
  3. เราสามารถดำเนินการ SELECT และ DML อื่น ๆ บนมุมมองแบบง่าย
  4. มุมมองใช้เนมสเปซเดียวกันกับตารางดังนั้นตารางและมุมมองจึงไม่สามารถมีชื่อเดียวกันได้

Answer: C, D. ไม่อนุญาตให้ดำเนินการ DML กับมุมมองที่มีฟังก์ชันกลุ่มคำสั่ง GROUP BY, Pseudocolumn ROWNUM หรือคีย์เวิร์ด DISTINCT

4. Why are views useful? (Choose the most appropriate answer)

  1. เนื่องจากมีชื่อสั้นกว่าตาราง
  2. เพื่อป้องกันไม่ให้ผู้ใช้เข้าถึงคอลัมน์ของตาราง
  3. เพื่อลดความซับซ้อนของ SQL ผู้ใช้
  4. ทั้งหมดที่กล่าวมา

Answer: B, C. มุมมองคือตารางชั่วคราวหรือเสมือนที่ใช้ในการดึงข้อมูลที่จัดเก็บในตารางฐานข้อมูลที่อยู่เบื้องหลัง ต้องเรียกใช้แบบสอบถามมุมมองทุกครั้งที่ใช้มุมมอง สามารถใช้มุมมองเพื่อลดความซับซ้อนของการสืบค้นหรือ จำกัด การเข้าถึงข้อมูลที่ละเอียดอ่อน

5. In which of the below scenarios, DML operations on a view are not possible?

  1. View มี GROUP BY clause
  2. ตารางฐานประกอบด้วยคอลัมน์ NOT NULL แต่ไม่ได้เลือกในแบบสอบถามมุมมอง
  3. ดูแบบสอบถามใช้ ROWNUM pseudocolumn
  4. ทั้งหมดที่กล่าวมา

Answer: D. ไม่อนุญาตให้ดำเนินการ DML กับมุมมองที่มีฟังก์ชันกลุ่มคำสั่ง GROUP BY, Pseudocolumn ROWNUM หรือคีย์เวิร์ด DISTINCT

6. Where can views get their data from?

  1. ตารางจากสคีมาเดียวกัน
  2. ตารางจากสคีมาที่แตกต่างกัน
  3. ทั้งเอและบี
  4. ไม่มีข้อใดข้างต้น

Answer: C.

Consider the given table structure and the following statement and answer the questions 7 to 9 that follow:

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
CREATE VIEW emp_details AS
SELECT hire_date, job, salary, department_id FROM employees;

7. You issue the below query. How many columns will the user see as a result of the below query?

SELECT * FROM emp_details WHERE department_id= 100;
  1. 0
  2. 1
  3. 2
  4. 4

Answer: D. เนื่องจากการกำหนดมุมมองเป็นไปตามสี่คอลัมน์จากตารางพนักงานแบบสอบถามในมุมมองที่มีคอลัมน์ทั้งหมดจะแสดงเฉพาะสี่คอลัมน์นั้น

8. You need to get the department name in addition to the above 4 columns. Which of the following query will give you the required results?

  1. SELECT E.*, dept_name
    FROM departments D join emp_details E
    ON (E.department_id= D.dept_id);
  2. SELECT hire_date, job, salary, dept_name FROM emp_details
  3. เป็นไปไม่ได้ที่ไม่สามารถรวมมุมมองกับตารางอื่นได้
  4. ไม่มีข้อใดข้างต้น

Answer: A. มุมมองสามารถเข้าร่วมกับตารางหรือมุมมองอื่น ๆ ในแบบสอบถาม SELECT

9. You need to find the maximum salary along with the department name in addition to the 4 columns selected in the view. Which of the following query will give you the required results?

  1. Select dept_name, e.salary
    FROM departments D join emp_details E
    On (E.department_id= D.dept_id);
  2. Select dept_name, max(salary)
    FROM departments D join emp_details E
    On (E.department_id= D.dept_id)
    Group by dept_name;
  3. มุมมองไม่สามารถปรากฏในแบบสอบถามโดยใช้ฟังก์ชันกลุ่ม
  4. Select dept_name, max(salary)
    FROM departments D join emp_details E
    On (E.department_id= D.dept_id);

Answer: B.

10. What among the following is true about synonyms?

  1. คำพ้องความหมายสาธารณะและส่วนบุคคลสามารถมีชื่อเดียวกันสำหรับตารางเดียวกัน
  2. DROP SYNONYM จะลบคำพ้องความหมาย
  3. DROP PUBLIC SYNONYM สามารถดำเนินการได้โดย SYSDBA เท่านั้น
  4. ไม่มีข้อใดข้างต้น

Answer: A, C. คำพ้องความหมายอาจเป็นคำพ้องความหมายส่วนตัวซึ่งผู้ใช้ใช้อ้างอิงวัตถุที่ตนเป็นเจ้าของหรือคำพ้องความหมายสาธารณะซึ่งผู้ใช้ใช้เพื่อเข้าถึงวัตถุฐานข้อมูลของผู้ใช้รายอื่น เฉพาะ SYSDBA หรือผู้ใช้ที่มีสิทธิ์ DBA เท่านั้นที่สามารถสร้างคำพ้องความหมายสาธารณะได้

11. What is true about creating a view? (Choose the most appropriate answer)

  1. สามารถสร้างมุมมองได้จากตารางเท่านั้น
  2. สามารถสร้างมุมมองได้จากตารางเดียวเท่านั้น
  3. มุมมองสามารถสร้างขึ้นจากหนึ่งตารางหรือหลายมุมมอง
  4. ไม่มีข้อใดข้างต้น

Answer: C. มุมมองที่มีนิพจน์หรือฟังก์ชันหรือการเข้าร่วมหลายตารางถือเป็นมุมมองที่ซับซ้อน สามารถใช้มุมมองที่ซับซ้อนเพื่ออัปเดตตารางเดียวเท่านั้น

12. Which of the following privileges are required to create views in one's own schema?

  1. สร้างสิทธิ์ระบบตาราง
  2. สร้างสิทธิ์ระบบดู
  3. แก้ไขสิทธิ์ระบบดู
  4. สร้างสิทธิ์ระบบมุมมองใด ๆ

Answer: B. ผู้ใช้ต้องการสิทธิ์ CREATE VIEW เพื่อสร้างข้อมูลพร็อพเพอร์ตี้ในสคีมาของตนเอง

13. Which of the following privileges are required to create views in someone else's schema?

  1. สร้างมุมมองใด ๆ
  2. สร้างมุมมอง
  3. ทั้งเอและบี
  4. ไม่มีข้อใดข้างต้น

Answer: A. สร้างสิทธิ์การดูใด ๆ ที่ผู้ใช้ต้องการเพื่อสร้างข้อมูลพร็อพเพอร์ตี้ในสคีมาของผู้ใช้รายอื่น

14.Which of the following are supported for an object view or relational view?

  1. LOBs
  2. ประเภทวัตถุ
  3. ชนิดข้อมูล REF
  4. ทั้งหมดที่กล่าวมา

Answer: D.

15. What among the following are different types of Views?

  1. มุมมองที่เรียบง่าย
  2. มุมมองที่ซับซ้อน
  3. ทั้งเอและบี
  4. ไม่มีข้อใดข้างต้น

Answer: C. มุมมองที่เรียบง่ายและซับซ้อนเป็นมุมมองสองประเภท มุมมองอย่างง่ายขึ้นอยู่กับการสืบค้นย่อยที่อ้างอิงเพียงตารางเดียวและไม่รวมฟังก์ชันกลุ่มนิพจน์หรือ GROUP BY clauses มุมมองที่ซับซ้อนขึ้นอยู่กับการสืบค้นย่อยที่ดึงหรือดึงข้อมูลจากตารางอย่างน้อยหนึ่งตารางและสามารถมีฟังก์ชันหรือข้อมูลที่จัดกลุ่มได้

16. What is true about a simple view?

  1. คำสั่ง DML สามารถออกได้เกือบตลอดเวลาเมื่อเทียบกับมุมมองทั่วไป
  2. มีเพียงตารางฐานแหล่งที่มาเดียว
  3. ไม่มีการใช้ฟังก์ชันกลุ่ม
  4. ทั้งหมดที่กล่าวมา

Answer: D. มุมมองอย่างง่ายขึ้นอยู่กับการสืบค้นย่อยที่อ้างอิงเพียงตารางเดียวและไม่รวมฟังก์ชันกลุ่มนิพจน์หรือ GROUP BY clauses

17.What is true about a complex view?

  1. ไม่สามารถออกคำสั่ง DML กับมุมมองที่ซับซ้อนได้
  2. มีตารางฐานหลายตัว
  3. ไม่สามารถทำการสรุปรวมได้
  4. ทั้งหมดที่กล่าวมา

Answer: D. มุมมองที่ซับซ้อนขึ้นอยู่กับการสืบค้นย่อยที่ดึงหรือดึงข้อมูลจากตารางอย่างน้อยหนึ่งตารางและสามารถมีฟังก์ชันหรือข้อมูลที่จัดกลุ่มได้

18.Which keyword combination should be used to implicitly drop a view (if it exists) and create a new view with the same name?

  1. สร้างมุมมอง
  2. เปลี่ยนมุมมอง
  3. สร้างหรือเปลี่ยนมุมมอง
  4. ไม่มีข้อใดข้างต้น

Answer: C. อ็อพชัน OR REPLACE แจ้ง Oracle 11g ว่าอาจมีมุมมองที่มีชื่อเดียวกันอยู่แล้ว หากเป็นเช่นนั้นเวอร์ชันก่อนหน้าของมุมมองควรถูกแทนที่ด้วยเวอร์ชันที่กำหนดไว้ในคำสั่งใหม่

19.How is a view stored in the data dictionary?

  1. เป็นประโยค WHERE
  2. เป็นคำสั่งสร้าง
  3. เป็นคำสั่ง UPDATE
  4. เป็นคำสั่ง SELECT

Answer: D.

20.Which of the following can contain single-row functions?

  1. มุมมองแบบอินไลน์
  2. มุมมองที่เรียบง่าย
  3. มุมมองที่ซับซ้อน
  4. มุมมองแบบคอมโพสิต

Answer: A, B. สามารถใช้ฟังก์ชันแถวเดียวในแบบอินไลน์และมุมมองแบบง่าย

21.Which of the following can contain a group of data?

  1. มุมมองคอมโพสิต
  2. ดูง่าย
  3. มุมมองที่ซับซ้อน
  4. ไม่มีข้อใดข้างต้น

Answer: C. มุมมองที่ซับซ้อนสามารถใช้ฟังก์ชันกลุ่มในแบบสอบถาม

22.What among the following is true about a View?

  1. แบบสอบถามย่อยสามารถฝังอยู่ในคำสั่ง CREATE VIEW
  2. แบบสอบถามย่อยที่ใช้ในคำสั่ง CREATE VIEW ต้องมีไวยากรณ์ SELECT แบบง่าย
  3. คุณไม่สามารถใช้คำสั่ง WHERE ในแบบสอบถามย่อยได้เมื่อใช้ในคำสั่งสร้างมุมมอง
  4. ไม่มีข้อใดข้างต้น

Answer: A. ดูคำจำกัดความสามารถใช้ประโยชน์จากการสืบค้นย่อย

23.Which of the following can create a view even if the base table(s) does not exist?

  1. NOFORCE
  2. FORCE
  3. หรือแทนที่
  4. สร้างมุมมอง

Answer: B. หากคุณรวมคีย์เวิร์ด FORCE ไว้ในส่วนคำสั่ง CREATE Oracle 11g จะสร้างมุมมองแม้ว่าจะไม่มีตารางอ้างอิงใด ๆ NOFORCE เป็นโหมดเริ่มต้นสำหรับคำสั่ง CREATE VIEW ซึ่งหมายความว่าตารางและคอลัมน์ทั้งหมดต้องถูกต้องมิฉะนั้นมุมมองจะไม่ถูกสร้างขึ้น

24.Which of the following commands ensures that no DML operations can be performed on a view?

  1. NOFORCE
  2. FORCE
  3. ด้วยการอ่านเท่านั้น
  4. หรือแทนที่

Answer: C. ตัวเลือกโดยอ่านอย่างเดียวจะป้องกันไม่ให้ดำเนินการ DML ใด ๆ บนมุมมอง ตัวเลือกนี้มักใช้เมื่อจำเป็นที่ผู้ใช้สามารถสืบค้นข้อมูลได้เท่านั้นไม่ต้องทำการเปลี่ยนแปลงใด ๆ

25.What is true about the NOFORCE option in CREATE VIEW statement?

  1. สร้างมุมมองแม้ว่าจะไม่มีตารางพื้นฐาน
  2. จะสร้างมุมมองเฉพาะในกรณีที่มีตารางฐานอยู่
  3. เป็นค่าเริ่มต้นขณะสร้างมุมมอง
  4. ไม่มีข้อใดข้างต้น

Answer: B, C. NOFORCE เป็นโหมดเริ่มต้นสำหรับคำสั่ง CREATE VIEW ซึ่งหมายความว่าตารางและคอลัมน์ทั้งหมดต้องถูกต้องมิฉะนั้นมุมมองจะไม่ถูกสร้างขึ้น

26.What is true about the OR REPLACE keyword?

  1. สิทธิ์ของวัตถุจะหายไปเมื่อสร้างมุมมองโดยใช้คำสำคัญนี้
  2. ไม่จำเป็นต้องให้สิทธิ์ออบเจ็กต์ที่ให้ไว้ก่อนหน้านี้อีกครั้ง
  3. ทั้ง A และ B
  4. ไม่มีข้อใดข้างต้น

Answer: B. อ็อพชัน OR REPLACE แจ้ง Oracle 11g ว่าอาจมีมุมมองที่มีชื่อเดียวกันอยู่แล้ว หากเป็นเช่นนั้นเวอร์ชันก่อนหน้าของมุมมองควรถูกแทนที่ด้วยเวอร์ชันที่กำหนดไว้ในคำสั่งใหม่

27.What is true with respect to accessing the below view? (Assume the table structure given)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
CREATE VIEW salVU100
AS SELECT employee_id  ID_NUMBER, last_name NAME, salary*12 ANNUAL_SAL
FROM employees E 
WHERE department_id= 100;
  1. ต้องเข้าถึงมุมมองโดยชื่อคอลัมน์ดั้งเดิมที่กำหนดไว้ในตารางฐาน
  2. ต้องเข้าถึงมุมมองโดยนามแฝงที่ระบุในแบบสอบถามมุมมอง
  3. มุมมองเป็นมุมมองที่เรียบง่าย
  4. ไม่มีข้อใดข้างต้น

Answer: B, C. มุมมองต้องอ้างอิงนามแฝงของคอลัมน์หากนิยามมุมมองมีนามแฝงสำหรับคอลัมน์

28.What is true with respect to accessing the below view? (Assume the table structure given)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
CREATE VIEW salVU100 (ID_NUMBER, NAME, ANNUAL_SAL)
AS SELECT employee_id , last_name, salary*12 
FROM employees E 
WHERE department_id= 100;
  1. ไม่บังคับว่าจำนวนนามแฝงจะตรงกับหมายเลข ของนิพจน์ในแบบสอบถามย่อย
  2. มีข้อบังคับว่าเลขที่ ของนามแฝงที่แสดงรายการต้องตรงกับเลขที่ ของนิพจน์ที่เลือกในแบบสอบถามย่อย
  3. จำเป็นต้องให้นามแฝงขณะสร้างมุมมอง
  4. ไม่มีข้อใดข้างต้น

Answer: B. หากมีการระบุนามแฝงในส่วนหัวของมุมมองต้องเลือกจำนวนคอลัมน์เดียวกันในคิวรี SELECT

29. Consider the following statement and the given table structure:

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SQL> DESC departments
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 DEPARTMENT_ID		 NOT NULL NUMBER(4)
 DEPARTMENT_NAME	 NOT NULL VARCHAR2(30)
 MANAGER_ID			  NUMBER(6)
 LOCATION_ID			  NUMBER(4)
CREATE OR REPLACE VIEW empVU100
(ID_NUMBER, NAME, ANNUAL_SAL, DEPT_ID)
AS 
SELECT employee_id , first_name ||' '|| last_name, salary, department_id
FROM employees
WHERE department_id= 100;

อะไรคือความจริงเกี่ยวกับนามแฝงของคอลัมน์ในแบบสอบถามด้านบน

  1. นามแฝงของคอลัมน์จะแสดงรายการตามลำดับแบบสุ่มเป็นคอลัมน์ในแบบสอบถามย่อย
  2. นามแฝงของคอลัมน์จะแสดงในลำดับเดียวกับคอลัมน์ในแบบสอบถามย่อย
  3. ชื่อแทนคอลัมน์เป็นสิ่งที่จำเป็นในขณะที่ใช้คำหลักสร้างหรือแทนที่
  4. เราไม่สามารถใช้การเรียงต่อกันเมื่อเราใช้สร้างหรือแทนที่

Answer: B.

Consider the following statement and answer the questions 30 to 34 that follow:

CREATE OR REPLACE VIEW dept_sum_vu (name, minsal, maxsal, avgsal) 
AS 
SELECT d.dept_name, MIN(e.salary), MAX(e.salary), AVG (e.salary)
FROM employees e JOIN departments d 
ON (e.department_id= d.dept_id)
GROUP BY d.dept_name;

30.What can be said about the statement given above?

  1. มีการตั้งชื่อทางเลือกสำหรับมุมมอง
  2. การตั้งชื่อทางเลือกเป็นสิ่งจำเป็นหากคอลัมน์ใด ๆ ได้มาจากฟังก์ชันหรือนิพจน์
  3. ทั้งเอและบี
  4. ไม่มีข้อใดข้างต้น

Answer: C. การระบุชื่อนามแฝงเป็นแนวทางปฏิบัติที่ดีในการปรับปรุงความสามารถในการอ่านโค้ดและแบบสอบถามมุมมอง

31.What will happen if the above statement is modified as below?

CREATE OR REPLACE VIEW dept_sum_vu(name, maxsal, minsal, avgsal)
AS 
SELECT d.dept_name, MIN(e.salary), MAX(e.salary), AVG (e.salary)
FROM employees e JOIN departments d 
ON (e.department_id= d.dept_id)
GROUP BY d.dept_name;
  1. มันจะไม่ต่างจากคำสั่งเดิม
  2. มันจะดำเนินการสำเร็จโดยให้ผลลัพธ์เดียวกัน แต่เปลี่ยนชื่อนามแฝง
  3. มันจะทำให้เกิดข้อผิดพลาด ORA
  4. ไม่มีข้อใดข้างต้น

Answer: B. ลำดับของนามแฝงคอลัมน์ไม่สำคัญมากนักเนื่องจากไม่ได้มีแอตทริบิวต์พฤติกรรมใด ๆ

32.Determine the output of the below DELETE statement.

DELETE FROM dept_sum_vu;
  1. มันจะลบมุมมอง
  2. มันจะลบแถวทั้งหมดออกจากมุมมอง แต่โครงสร้างของมุมมองจะยังคงเหมือนเดิม
  3. มันจะทำให้เกิดข้อผิดพลาด ORA
  4. ไม่มีข้อใดข้างต้น

Answer: C. มุมมอง DEPT_SUM_VU เป็นมุมมองที่ซับซ้อน ไม่สามารถดำเนินการ DML บนมุมมองที่ซับซ้อนได้

33.Suppose you modify the query given above to the following:

CREATE OR REPLACE VIEW dept_sum_vu(name, sal) 
AS 
SELECT d.dept_name, e.salary 
FROM employees e JOIN departments d 
ON (e.department_id= d.dept_id)
Where rownum < 10;

ผลกระทบของการปรับเปลี่ยนจะเป็นอย่างไร?

  1. สามารถอัปเดตมุมมองเพื่ออัปเดตค่าในตารางพนักงานและ DEPARTMENTS
  2. ข้อมูลในตาราง EMPLOYEES และ DEPARTMENTS ไม่สามารถลบผ่านมุมมองได้
  3. ข้อมูลในตาราง EMPLOYEES และ DEPARTMENTS สามารถแทรกผ่านมุมมองได้
  4. สามารถเพิ่มคอลัมน์ในตารางพนักงานผ่านมุมมอง

Answer: B. ไม่สามารถดำเนินการ DML บนมุมมองที่ซับซ้อนได้ DEPT_SUM_VU เป็นมุมมองที่ซับซ้อนเนื่องจากรวมหลายตาราง การดำเนินการ DDL ไม่สามารถทำได้ในมุมมอง

34.Suppose you select DISTINCT departments and employee salaries in the view query used in above question. What will be the outcome if you try to remove rows from the view dept_sum_vu?

  1. แถวจะถูกลบออกโดยไม่มีข้อผิดพลาดใด ๆ
  2. ระบบจะลบเฉพาะ 10 แถวแรกเท่านั้น
  3. ไม่สามารถลบแถวได้
  4. ไม่มีข้อใดข้างต้น

Answer: C. มุมมอง DEPT_SUM_VU ยังคงเป็นมุมมองที่ซับซ้อนเนื่องจากใช้คำหลัก DISTINCT ดังนั้นจึงไม่สามารถดำเนินการ DML ได้

35.When can the rows from a view be removed?

  1. ไม่สามารถลบแถวผ่านมุมมองได้
  2. มันควรจะเป็นมุมมองที่เรียบง่าย
  3. มันควรจะเป็นมุมมองที่ซับซ้อน
  4. ไม่มีข้อใดข้างต้น

Answer: B. การดำเนินการ DML ทำได้เฉพาะในมุมมองธรรมดาเท่านั้น

36.When can the data in a view not be modified?

  1. เมื่อมีนิพจน์กลุ่ม
  2. เมื่อมีคำสั่ง GROUP BY
  3. เมื่อใช้ ROWNUM ในแบบสอบถามมุมมอง
  4. ทั้งหมดที่กล่าวมา

Answer: D. ไม่สามารถอัปเดตได้ในมุมมองที่มีฟังก์ชันกลุ่ม pseudocolumns หรือคีย์เวิร์ด DISTINCT

37. The JOB_HISTORY table is owned by a user "Andy". Andy grants the SELECT privilege on the JOB_HISTORY table to another user "HR". Which statement would create a synonym EMP_JOBS so that "HR" can execute the following query successfully?(Assume the structure of tables as given)

SQL> desc job_history
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 START_DATE		 NOT NULL DATE
 END_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 DEPARTMENT_ID			  NUMBER(4)
SELECT * from EMP_JOBS;
  1. ประเด็น Andy -
    CREATE SYNONYM EMP_JOBS for JOB_HISTORY
  2. ปัญหาด้านทรัพยากรบุคคล -
    CREATE SYNONYM EMP_JOBS for andy.JOB_HISTORY
  3. ปัญหาด้านทรัพยากรบุคคล -
    CREATE PUBLIC SYNONYM EMP_JOBS FOR andy.JOB_HISTORY
  4. ไม่มีข้อใดข้างต้น

Answer: B. เฉพาะ SYSDBA หรือผู้ใช้ที่มีสิทธิ์ DBA เท่านั้นที่สามารถสร้างคำพ้องความหมายสาธารณะได้

38.Which keyword can assure that the DML operations performed on the view stay in the domain of the view?

  1. หรือแทนที่
  2. CREATE
  3. ด้วยตัวเลือกการตรวจสอบ
  4. ไม่มีข้อใดข้างต้น

Answer: C. ข้อ จำกัด ด้วยตัวเลือกการตรวจสอบช่วยให้มั่นใจได้ว่าการดำเนินการ DML ใด ๆ ที่ดำเนินการบนมุมมอง (เช่นการเพิ่มแถวหรือการเปลี่ยนแปลงข้อมูล) ไม่ป้องกันไม่ให้มุมมองเข้าถึงแถวเนื่องจากไม่ตรงตามเงื่อนไขในส่วนคำสั่ง WHERE อีกต่อไป

Consider the following table structure and the given statement and answer the questions 39 and 40 that follow:

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
CREATE OR REPLACE VIEW empvu100
AS 
SELECT * FROM employees 
WHERE department_id= 100
WITH CHECK OPTION CONSTRAINT empvu100_ck;

39.What will the above statement do?

  1. จะช่วยให้ผู้ใช้สามารถทำการ INSERT หรือ UPDATE ในทุกหน่วยงาน
  2. จะอนุญาตให้ผู้ใช้ทำการ INSERT หรือ UPDATE แถวใดก็ได้ที่มีแผนก 100
  3. ผู้ใช้สามารถอัปเดตแถวใดก็ได้ในตารางพนักงาน
  4. ผู้ใช้สามารถแทรกแถวโดยไม่มีข้อ จำกัด ในตารางพนักงาน

Answer: B. ข้อ จำกัด ด้วยตัวเลือกการตรวจสอบช่วยให้มั่นใจได้ว่าการดำเนินการ DML ใด ๆ ที่ดำเนินการบนมุมมอง (เช่นการเพิ่มแถวหรือการเปลี่ยนแปลงข้อมูล) ไม่ป้องกันไม่ให้มุมมองเข้าถึงแถวเนื่องจากไม่ตรงตามเงื่อนไขในส่วนคำสั่ง WHERE อีกต่อไป ข้อผิดพลาด ORA จะเกิดขึ้นหาก INSERT หรือ UPDATE จะถูกดำเนินการในแถวใด ๆ ที่มี department_id อื่นที่ไม่ใช่ 100

40.Suppose you fire an UPDATE statement as shown below:

UPDATE empvu100
Set department_id = 200
Where employee_id  = 121;

ผลของคำพูดนี้จะเป็นอย่างไร?

  1. ไม่มีการอัปเดตแถว
  2. เกิดข้อผิดพลาด ORA
  3. ทั้งเอและบี
  4. ไม่มีข้อใดข้างต้น

Answer: C. หากข้อมูลพร็อพเพอร์ตี้ที่มี CHECK OPTION ได้รับการอัปเดตและค่าของระเบียนใหม่ละเมิดขอบเขตของมุมมองข้อยกเว้น ORA "ORA-01402: view WITH CHECK OPTION ที่การละเมิดข้อ" จะเพิ่มขึ้น

41.What is true about the WITH CHECK CONSTRAINT?

  1. INSERTs หรือ UPDATE ที่ดำเนินการผ่านมุมมองไม่สามารถสร้างแถวที่มุมมองไม่สามารถเลือกได้
  2. เฉพาะ INSERT ที่ดำเนินการผ่านมุมมองไม่สามารถสร้างแถวที่มุมมองไม่สามารถเลือกได้
  3. เฉพาะ UPDATE ที่ดำเนินการผ่านมุมมองไม่สามารถสร้างแถวที่มุมมองไม่สามารถเลือกได้
  4. ไม่มีข้อใดข้างต้น

Answer: A.

42.How can you prevent DML operations on a View?

  1. ด้วยการกำหนดข้อ จำกัด ด้วยตัวเลือกการตรวจสอบ
  2. โดยกำหนดตัวเลือกพร้อมอ่านเท่านั้น
  3. ทั้ง A และ B
  4. ไม่มีข้อใดข้างต้น

Answer: B. ตัวเลือกโดยอ่านอย่างเดียวจะป้องกันไม่ให้ดำเนินการ DML ใด ๆ บนมุมมอง ตัวเลือกนี้มักใช้เมื่อจำเป็นที่ผู้ใช้สามารถสืบค้นข้อมูลได้เท่านั้นไม่ต้องทำการเปลี่ยนแปลงใด ๆ

Consider the table structure and the given statement and answer the questions 43, 44 and 45 that follow:

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
CREATE OR REPLACE empvu100(employee_id , first_name, job)
AS 
SELECT employee_id , last_name, job
FROM employees
WHERE department_id = 100
WITH READ ONLY;

43.What is true about the above statement?

  1. มุมมองจะไม่ถูกสร้างขึ้น
  2. การดำเนินการ INSERT ในมุมมองนี้จะทำให้เกิดข้อผิดพลาด ORA
  3. ในการอัปเดตแถวสำหรับพนักงานทั้งหมดในแผนก 100 ข้อผิดพลาด ORA จะเกิดขึ้น
  4. ไม่มีข้อใดข้างต้น

Answer: B, C. ไม่อนุญาตให้ดำเนินการ DML ในมุมมองที่สร้างขึ้นด้วยตัวเลือกอ่านอย่างเดียว

44.How many rows can be deleted from the view as shown above?

  1. ทุกแถวของมุมมอง
  2. ทุกแถวเฉพาะกรม 100
  3. ไม่มีแถว
  4. ไม่มีข้อใดข้างต้น

Answer: C. ไม่อนุญาตให้ดำเนินการ DML ในมุมมองที่สร้างขึ้นด้วยตัวเลือกอ่านอย่างเดียว

45.Which of the following statements will drop the view created as above?

  1. DROP READ ONLY VIEW empvu100;
  2. DROP NOFORCE empvu100;
  3. DROP VIEW empvu100;
  4. ไม่มีข้อใดข้างต้น

Answer: C. มุมมองอ่านอย่างเดียวสามารถลดลงได้โดยใช้คำสั่ง DROP VIEW

46.What is true about dropping a View?

  1. คอลัมน์ในมุมมองจากตารางฐานจะถูกทิ้งด้วย
  2. นิยามของมุมมองจะถูกลบออกจากฐานข้อมูล
  3. การลดลงของมุมมองไม่มีผลกับตารางพื้นฐานที่สำคัญ
  4. ไม่มีข้อใดข้างต้น

Answer: B, C.

47.Which of the following privileges should a user have to drop a view?

  1. สร้างมุมมองใด ๆ
  2. สร้างมุมมอง
  3. ปล่อยมุมมองใด ๆ
  4. ดูดรอป

Answer: C.

48.What is true about sequences?

  1. มันสร้างจำนวนเต็ม
  2. เป็นวัตถุที่แบ่งปันได้
  3. สามารถใช้เพื่อสร้างค่า PRIMARY KEY
  4. ทั้งหมดที่กล่าวมา

Answer: D. ลำดับเร่งประสิทธิภาพในการเข้าถึงค่าลำดับเมื่อแคชในหน่วยความจำ

49.What is true about a sequence?

  1. ถูกสร้างขึ้นเมื่อติดตั้ง Oracle Database
  2. สร้างขึ้นโดยผู้ใช้ที่มีสิทธิ์ระบบ CREATE SEQUENCE
  3. ไม่สามารถแชร์โดยผู้ใช้มากกว่าสองคน
  4. จะลดลงโดยอัตโนมัติเมื่อฐานข้อมูลถูกตัดการเชื่อมต่อ

Answer: B, C. ผู้ใช้ต้องการสิทธิ์ระบบ CREATE SEQUENCE เพื่อสร้างลำดับในสคีมาของตนเองซึ่งไม่สามารถแชร์โดยผู้ใช้รายอื่นได้

50.What among the following options is true about Sequences?

  1. จำนวนเต็มที่สร้างขึ้นจากลำดับสำหรับตารางหนึ่งตารางอื่นไม่สามารถใช้ได้
  2. ลำดับสามารถเพิ่มได้เท่านั้น
  3. ลำดับจะไม่ถูกต้องหากลำดับอื่นสร้างจำนวนเต็มเดียวกัน
  4. ลำดับสามารถใช้กับตารางจำนวนมากและสามารถเพิ่มหรือลดได้

Answer: D.

Consider the following statement and answer the questions 51 to 59 that follow:

CREATE SEQUENCE dept_deptid_seq
INCREMENT BY 100
START WITH 101
MAXVALUE 9999
NOCACHE
NOCYCLE;

51.What will be the first value generated by this sequence?

  1. 1
  2. 100
  3. 101
  4. 9999

Answer: C. คำสั่งเริ่มต้นด้วยสร้างค่าเริ่มต้นสำหรับลำดับ Oracle 11g เริ่มต้นแต่ละลำดับที่ 1 เว้นแต่จะมีการระบุค่าอื่นในอนุประโยคเริ่มต้นด้วย

52.What can be the last value generated by this sequence?

  1. 0
  2. 100
  3. 101
  4. 9999

Answer: D. ส่วนคำสั่ง MINVALUE และ MAXVALUE สร้างค่าต่ำสุดหรือสูงสุดสำหรับลำดับ

53.What will be the 2nd value generated by this sequence?

  1. 102
  2. 100
  3. 99
  4. 9999

Answer: A. คำสั่ง INCREMENT BY ระบุช่วงเวลาระหว่างค่าตามลำดับสองค่า หากลำดับเพิ่มขึ้นด้วยค่าบวกค่าที่ลำดับสร้างจะเรียงลำดับจากน้อยไปมาก อย่างไรก็ตามหากระบุค่าลบค่าที่ลำดับสร้างจะเรียงลำดับจากมากไปหาน้อย ถ้าไม่รวมคำสั่ง INCREMENT BY เมื่อสร้างลำดับระบบจะใช้การตั้งค่าเริ่มต้นซึ่งจะเพิ่มลำดับทีละหนึ่งสำหรับแต่ละจำนวนเต็มที่สร้างขึ้น

54.What will be the next value after the maximum integer 9999 is reached by this sequence?

  1. 101
  2. ไม่มีค่า
  3. มันจะทำให้เกิดข้อผิดพลาด ORA
  4. ไม่มีข้อใดข้างต้น

Answer: B. อ็อพชัน CYCLE และ NOCYCLE กำหนดว่า Oracle 11g ควรเริ่มออกค่าใหม่จากลำดับหลังจากถึงค่าต่ำสุดหรือสูงสุด

55.How many values will Oracle pre allocate in memory based on the sequence given above?

  1. 20
  2. 0
  3. 100
  4. 9999

Answer: A.

56.You execute the below query:

SELECT dept_depid_seq.NEXTVAL from dual;
  1. 200
  2. 101
  3. 9999
  4. 201

Answer: D. Pseudocolumn NEXTVAL จะสร้างจำนวนเต็มที่ไม่ซ้ำกันถัดไปของลำดับ

57.You execute the below query:

SELECT dept_depid_seq.CURRVAL from dual;
  1. 200
  2. 101
  3. 9999
  4. 201

Answer: A. Pseudocolumn CURRVAL จะสร้างจำนวนเต็มที่ไม่ซ้ำกันในปัจจุบันที่สร้างขึ้นโดยลำดับ

58.Suppose you need to change the start value of this sequence to 1000. Which of the following statements will help?

  1. ALTER dept_deptid_seq
    INCREMENT BY 100
    START WITH 1000
    MAXVALUE 9999
    NOCACHE
    NOCYCLE;
  2. ลำดับจะต้องถูกทิ้งและสร้างใหม่เพื่อเริ่มต้นลำดับจาก 1,000
  3. ALTER SEQUENCE dept_deptid_seq
    START WITH 101
  4. ALTER SEQUENCE dept_deptid_seq
    INCREMENT BY 100
    START WITH 101
    CYCLE;

Answer: B. ไม่สามารถแก้ไขหมายเลขเริ่มต้นของลำดับได้ Oracle ยกข้อยกเว้น "ORA-02283: ไม่สามารถเปลี่ยนหมายเลขลำดับเริ่มต้น"

59.Suppose that the above sequence is altered as below:

ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 100
START WITH 101
MAXVALUE 99
NOCACHE
NOCYCLE;

ผลของการเปลี่ยนแปลงนี้จะเป็นอย่างไร?

  1. ข้อผิดพลาด ORA
  2. ค่าสูงสุดสำหรับลำดับการเปลี่ยนแปลงตอนนี้คือ 99
  3. ทั้ง A และ B
  4. ไม่มีข้อใดข้างต้น

Answer: A. MAXVALUE ต้องไม่น้อยกว่าค่าเริ่มต้นด้วยในขณะที่แก้ไขลำดับ

60.When can we use the CYCLE option in Sequences?

  1. หากเราต้องการล้างแถวเก่าให้เร็วขึ้น
  2. หากเราไม่ต้องการใช้ลำดับเพื่อสร้างค่า PRIMARY KEY
  3. ทั้งเอและบี
  4. ไม่มีข้อใดข้างต้น

Answer: C. อ็อพชัน CYCLE และ NOCYCLE กำหนดว่า Oracle 11g ควรเริ่มออกค่าใหม่จากลำดับหลังจากถึงค่าต่ำสุดหรือสูงสุด หากระบุอ็อพชัน CYCLE และ Oracle 11g ถึงค่าสูงสุดสำหรับลำดับจากน้อยไปหามากหรือค่าต่ำสุดสำหรับลำดับจากมากไปหาน้อยตัวเลือก CYCLE จะเริ่มวงจรของตัวเลขอีกครั้ง

61.What is true about NEXTVAL pseudo column?

  1. มันสร้าง CURRVAL ของลำดับขึ้นมาใหม่
  2. ส่งคืนค่าลำดับถัดไปที่พร้อมใช้งาน
  3. สามารถส่งคืนค่าที่ซ้ำกัน
  4. สร้างค่าเดียวกันสำหรับผู้ใช้ที่แตกต่างกัน

Answer: B. pseudocolumn NEXTVAL (NEXT VALUE) ใช้เพื่อสร้างค่าลำดับ กล่าวอีกนัยหนึ่งมันเรียกอ็อบเจ็กต์ลำดับและร้องขอค่าของตัวเลขถัดไปในลำดับ หลังจากสร้างค่าแล้วค่าจะถูกเก็บไว้ใน Pseudocolumn CURRVAL (CURRENT VALUE) เพื่อให้คุณสามารถอ้างอิงได้อีกครั้ง

62.What is true about CURRVAL pseudo column?

  1. สามารถใช้ CURRVAL ก่อน NEXTVAL ตามลำดับ
  2. CURRVAL ให้ค่าปัจจุบันของลำดับ
  3. CURRVAL สามารถให้ค่าที่ซ้ำกันได้
  4. ไม่มีข้อใดข้างต้น

Answer: B.

63.When can NEXTVAL and CURRVAL be used?

  1. ประโยค SET ของคำสั่ง INSERT
  2. VALUES อนุประโยคของคำสั่ง UPDATE
  3. รายการ SELECT ของคำสั่ง SELECT ที่ไม่ได้เป็นส่วนหนึ่งของแบบสอบถามย่อย
  4. รายการ SELECT ของคำสั่ง INSERT

Answer: C, D. ลำดับสามารถใช้ในแบบสอบถาม SELECT, เคอร์เซอร์ PL / SQL หรือในการดำเนินการโดยตรงของ IAS (INSERT-AS-SELECT)

64.When can NEXTVAL and CURRVAL not be used?

  1. รายการเลือกของมุมมอง
  2. คำสั่ง SELECT ที่มีคีย์เวิร์ด DISTINCT
  3. แบบสอบถามย่อยในคำสั่ง SELECT, DELETE หรือ UPDATE
  4. ทั้งหมดที่กล่าวมา

Answer: D.

Consider the given statement and answer the questions 65 and 66 that follow:

CREATE TABLE employees 
(employee_id  NUMBER(4) DEFAULT emp_empid_seq.CURRVAL,
 department_id NUMBER(4));

65.What will be the outcome of this statement? (Assume that emp_empid_seq is sequence used to generate employee ID values)

  1. ตารางจะถูกสร้างขึ้น
  2. คอลัมน์ department_id จะมีค่าจากลำดับที่สร้างขึ้นสำหรับรหัสพนักงาน
  3. คอลัมน์ department_id จะมีค่า DEFAULT
  4. ข้อผิดพลาด ORA

Answer: D. ไม่สามารถระบุ Pseudocolumns ในส่วนคำสั่ง DEFAULT ของนิยามคอลัมน์

66.What will be the outcome of this statement if the CURRVAL is replaced with NEXTVAL? (Assume that emp_empid_seq is generated to generate employee ID values)

  1. ตารางจะถูกสร้างขึ้น
  2. คอลัมน์ department_id จะมีค่าจากลำดับที่สร้างขึ้นสำหรับรหัสพนักงาน
  3. คอลัมน์ department_id จะมีค่า DEFAULT
  4. ข้อผิดพลาด ORA

Answer: D. ไม่สามารถระบุ Pseudocolumns ในส่วนคำสั่ง DEFAULT ของนิยามคอลัมน์

Examine the given exhibit giving the structures of the tables Departments and Location. Answer the questions 67 and 68 that follow:

SQL> DESC departments
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 DEPARTMENT_ID		 NOT NULL NUMBER(4)
 DEPARTMENT_NAME	 NOT NULL VARCHAR2(30)
 MANAGER_ID			  NUMBER(6)
 LOCATION_ID			  NUMBER(4)
SQL> desc locations
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 LOCATION_ID		 NOT NULL NUMBER(4)
 STREET_ADDRESS 		  VARCHAR2(40)
 POSTAL_CODE			  VARCHAR2(12)
 CITY			 NOT NULL VARCHAR2(30)
 STATE_PROVINCE 		  VARCHAR2(25)
 COUNTRY_ID			  CHAR(2)

67.You need to insert a new department named "HR" in the location ID 1000. Which of the following statements will give you the required results?

  1. INSERT INTO departments (dept_id, dept_name, location_id)
    VALUES (dept_deptid_seq.NEXTVAL, 'HR', 1000);
  2. INSERT INTO departments (dept_id, dept_name, location_id)
    VALUES (dept_deptid_seq.NEXTVAL, "HR", 1000);
  3. INSERT INTO departments (dept_id, dept_name, location_id)
    VALUES (dept_deptid_seq.CURRVAL, 'HR', 1000);
  4. ไม่มีข้อใดข้างต้น

Answer: A.ตัวเลือก C จะทำให้เกิด 'การละเมิดข้อ จำกัด เฉพาะ' เนื่องจากจะพยายามแทรกค่าปัจจุบันของ ID แผนกที่มีอยู่ในตาราง DEPARTMENTS

68.Suppose you execute the below query before inserting the values as shown in the option A in question 67. What will be the outcome of the query?

SELECT dept_deptid_seq.CURRVAL FROM DUAL;
  1. ข้อผิดพลาด ORA
  2. มันจะให้ค่าปัจจุบันของลำดับ
  3. ทั้ง A และ B
  4. ไม่มีข้อใดข้างต้น

Answer: B. เมื่อผู้ใช้ล็อกอินเข้าสู่ Oracle 11g ค่าเริ่มต้นจะไม่ถูกเก็บไว้ใน CURRVAL pseudocolumn; ค่าปัจจุบันคือ NULL หลังจากมีการเรียกใช้ NEXTVAL เพื่อสร้างค่าลำดับ CURRVAL จะเก็บค่านั้นไว้จนกว่าจะสร้างค่าถัดไป CURRVAL มีเฉพาะค่าสุดท้ายที่สร้างขึ้น

69.How can gaps occur in the values of a sequence?

  1. เมื่อเกิดการย้อนกลับ
  2. ระบบล่ม
  3. ลำดับถูกใช้ในตารางอื่น
  4. ทั้งหมดที่กล่าวมา

Answer: D.

70.What is true about caching sequence values?

  1. ไม่สามารถแคชค่าลำดับใน Oracle
  2. แคชจะถูกเติมเมื่อถึงขีด จำกัด สูงสุดของลำดับ
  3. การแคชเริ่มต้นครั้งแรกเมื่อมีการอ้างอิงลำดับ
  4. ไม่มีข้อใดข้างต้น

Answer: C. หากระบุอ็อพชัน NOCACHE เมื่อสร้างลำดับแต่ละหมายเลขจะถูกสร้างขึ้นเมื่อได้รับคำร้องขอ อย่างไรก็ตามหากธุรกรรมขององค์กรต้องการหมายเลขลำดับจำนวนมากตลอดทั้งเซสชันตัวเลือก CACHE สามารถใช้เพื่อให้ Oracle 11g สร้างชุดของค่าล่วงหน้าและเก็บไว้ในหน่วยความจำของเซิร์ฟเวอร์ จากนั้นเมื่อผู้ใช้ร้องขอค่าลำดับค่าที่พร้อมใช้งานถัดไปจะถูกกำหนด - โดยที่ Oracle 11g ไม่ต้องสร้างตัวเลข ในทางกลับกันหากไม่ได้ระบุตัวเลือก CACHE Oracle 11g จะถือว่าเป็นตัวเลือกเริ่มต้นของ CACHE 20 และเก็บค่าลำดับ 20 ไว้ในหน่วยความจำโดยอัตโนมัติเพื่อให้ผู้ใช้เข้าถึง

71.The following query for the sequence EMP_EMPID_SEQ is executed after a transaction which inserted five employee details.

Select emp_empID_seq.CURRVAL from dual;

สมมติว่าธุรกรรมของพนักงานย้อนกลับ ผลลัพธ์ของแบบสอบถามข้างต้นจะเป็นอย่างไร

  1. ค่าลำดับที่จุดเริ่มต้นของธุรกรรมของพนักงาน
  2. NULL
  3. ค่าลำดับเมื่อสิ้นสุดธุรกรรมของพนักงาน
  4. ไม่มีข้อใดข้างต้น

Answer: C. ค่าลำดับไม่ได้รับผลกระทบจากการกระทำหรือย้อนกลับ หากธุรกรรมที่ใช้ตัวสร้างลำดับถูกย้อนกลับค่าลำดับจะสูญเปล่าและไม่สามารถกู้คืนได้

72.Which of the following privileges are required to modify a sequence?

  1. สร้างหรือเปลี่ยนสิทธิ์
  2. แก้ไขสิทธิ์สำหรับลำดับ
  3. แก้ไขสิทธิ์ของตาราง
  4. อัปเดตสิทธิ์

Answer: B. ในการแก้ไขลำดับลำดับจะต้องอยู่ในสคีมาของคุณเองหรือคุณต้องมีสิทธิ์เปลี่ยนแปลงอ็อบเจ็กต์ในลำดับนั้นหรือคุณต้องมีสิทธิ์ระบบแก้ไขลำดับใด ๆ

73.What happens when a sequence is altered?

  1. จำนวนเต็มที่มีอยู่แล้วซึ่งสร้างขึ้นโดยลำดับจะมีการเปลี่ยนแปลงเช่นกัน
  2. เฉพาะจำนวนเต็มในอนาคตเท่านั้นที่ได้รับผลกระทบ
  3. ลำดับจะหยุดการแคชจำนวนเต็มในอนาคต
  4. ไม่มีข้อใดข้างต้น

Answer: B. โดยใช้คำสั่ง ALTER SEQUENCE การเปลี่ยนแปลงใด ๆ จะถูกนำไปใช้เฉพาะกับค่าที่สร้างขึ้นหลังจากทำการแก้ไข

74.Suppose you need to drop a sequence. Which of the following commands will help?

  1. ALTER SEQUENCE sequence_name START WITH NULL;
  2. DROP sequence_name;
  3. DROP SEQUENCE sequence_name;
  4. ไม่มีข้อใดข้างต้น

Answer: C. คำสั่ง DROP ใช้เพื่อวางลำดับ

75.Which of the following privileges will allow you to drop a sequence? (Choose the most appropriate answer)

  1. เปลี่ยนแปลงลำดับ
  2. แก้ไขตาราง
  3. วางลำดับ
  4. วางลำดับใด ๆ

Answer: D. ในการวางลำดับลำดับต้องอยู่ในสคีมาของคุณเองหรือคุณต้องมีสิทธิ์ระบบ DROP ANY SEQUENCE

76.What is true about Indexes?

  1. ดัชนีจะถูกสร้างขึ้นด้วยตนเองเท่านั้น
  2. ดัชนีจะถูกสร้างขึ้นโดยอัตโนมัติเท่านั้น
  3. ทั้งเอและบี
  4. ไม่มีข้อใดข้างต้น

Answer: D. สามารถสร้างดัชนีได้ด้วยตนเองและทำตามการกระทำบางอย่างโดยอัตโนมัติเช่นการสร้างคีย์หลักหรือข้อ จำกัด unqiue

77.Which of the following is used by an index to locate the data quickly?

  1. ROWNUM
  2. ROWID
  3. Sequence
  4. ไม่มีข้อใดข้างต้น

Answer: B. ดัชนี Oracle 11g เป็นอ็อบเจ็กต์ฐานข้อมูลที่เก็บแผนที่ของค่าคอลัมน์และ ROWID ของแถวตารางที่ตรงกัน ROWID คือที่อยู่จริงของแถวตาราง

78.What happens when there is no index on a column of a table?

  1. ข้อมูลจะอยู่อย่างรวดเร็ว
  2. มีสแกนเต็มโต๊ะ
  3. ไม่สามารถสร้างตารางได้
  4. ไม่สามารถเปลี่ยนแปลงตารางได้

Answer: B.

79.What among the following is true about an Index?

  1. ดัชนีลดดิสก์ I / O
  2. ดัชนีค้นหาข้อมูลได้อย่างรวดเร็ว
  3. ดัชนีมีเหตุผลและทางกายภาพไม่ขึ้นกับตารางที่จัดทำดัชนี
  4. ทั้งหมดที่กล่าวมา

Answer: D.

80.What will happen if an index is dropped?

  1. คอลัมน์ที่สร้างดัชนีจะถูกทิ้งด้วย
  2. ตารางที่สร้างดัชนีก็หลุดด้วย
  3. ดัชนีเมื่อสร้างแล้วจะไม่สามารถทิ้งได้
  4. เนื่องจากดัชนีเป็นอ็อบเจ็กต์อิสระทั้งทางตรรกะและทางกายภาพจึงสามารถทิ้งได้โดยไม่ส่งผลกระทบต่อวัตถุอื่น

Answer: D. ดัชนีคือวัตถุที่เก็บไว้ในสคีมา การลดดัชนีไม่ส่งผลกระทบต่อวัตถุอื่น ๆ

81.What happens when a table is dropped?

  1. ดัชนียังคงอยู่เนื่องจากเป็นวัตถุที่มีเหตุผลและเป็นอิสระ
  2. ดัชนีในตารางจะลดลงด้วย
  3. ทั้ง A และ B
  4. ไม่มีข้อใดข้างต้น

Answer: B.

82.How are indexes created automatically?

  1. เมื่อเราสร้างตาราง
  2. เมื่อตารางมีการเปลี่ยนแปลง
  3. เมื่อคีย์หลักถูกกำหนดบนคอลัมน์ (หรือกลุ่มคอลัมน์) ของตาราง
  4. เมื่อมีการกำหนดข้อ จำกัด UNIQUE KEY ในนิยามตาราง

Answer: C, D.

83.For which of the following objects, a synonym can be created?

  1. ตารางและมุมมองเท่านั้น
  2. ตารางดูและลำดับ
  3. กระบวนงานฟังก์ชันหรือแพ็คเกจที่จัดเก็บไว้
  4. Synonym

Answer: B, C, D. อ็อบเจ็กต์ schema ที่คุณกำลังสร้างคำพ้องความหมายอาจเป็นประเภทต่อไปนี้: Table หรือ object table, View หรือ object view, Sequence, Stored procedure, function, or package, Materialized view, Java class schema object, User-defined object type , คำพ้องความหมาย

84. Which of the following can you use to reference a table owned by another user?

  1. INDEX
  2. TABLE
  3. SYNONYMS
  4. SEQUENCES

Answer: C. คำพ้องความหมายคือชื่ออื่นหรือนามแฝงสำหรับอ็อบเจ็กต์ฐานข้อมูล

85.What among of the following is an example of a Non-unique index?

  1. คีย์หลัก
  2. คีย์ที่ไม่ซ้ำใคร
  3. คีย์ต่างประเทศ
  4. ไม่มีข้อใดข้างต้น

Answer: C.

86.Which of the following is the main and basic type of an Index?

  1. Bitmap
  2. B-tree
  3. Unique
  4. Non-unique

Answer: A, B. ดัชนี B-tree (ต้นไม้สมดุล) เป็นดัชนีที่ใช้บ่อยที่สุดใน Oracle คุณสามารถสร้างดัชนีประเภทนี้ได้ด้วยคำสั่ง CREATE INDEX พื้นฐาน ดัชนีบิตแมปแตกต่างกันไปตามโครงสร้างและใช้จากดัชนี B-tree ดัชนีนี้มีประโยชน์สำหรับการปรับปรุงการสืบค้นในคอลัมน์ที่มีการเลือกต่ำ (จำนวนสมาชิกต่ำหรือค่าที่แตกต่างกันจำนวนเล็กน้อย)

87.You need to speed up a query by creating an index on the FIRST_NAME of the EMPLOYEES table. Which of the following statements can you use? (Assume the table structure as shown)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
  1. CREATE INDEX emp_first_name_idx 
    ON employees (first_name);
  2. CREATE INDEX emp_first_name_idx 
    ON employees first_name;
  3. ALTER INDEX emp_first_name_idx 
    ON employees (first_name);
  4. ไม่มีข้อใดข้างต้น

Answer: A.

88.What does the UNIQUE keyword do while creating indexes?

  1. ระบุว่าค่าของคอลัมน์ที่สร้างดัชนีต้องไม่ซ้ำกัน
  2. คุณไม่สามารถใช้คีย์เวิร์ด UNIQUE เมื่อสร้างดัชนี
  3. ระบุว่าดัชนีที่สร้างขึ้นสามารถใช้ได้กับตารางเดียวเท่านั้น
  4. ไม่มีข้อใดข้างต้น

Answer: A. โดยทั่วไปดัชนีที่ไม่ซ้ำกันจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อมีการกำหนด PRIMARY KEY หรือ UNIQUE constraint บนคอลัมน์ นอกจากนี้ยังสามารถสร้างดัชนีที่ไม่ซ้ำกันได้อย่างชัดเจนโดยการรวมคีย์เวิร์ด UNIQUE ไว้ในคำสั่ง CREATE INDEX

89.What will happen when you specify the keyword BITMAP while creating an Index?

  1. สร้างดัชนีด้วยบิตแมปสำหรับแต่ละคีย์ที่แตกต่างกัน
  2. ไม่สร้างดัชนีในแต่ละแถวแยกกัน
  3. ทั้งเอและบี
  4. ไม่มีข้อใดข้างต้น

Answer: C.

90.You have queries written which are expected to retrieve less than 2% to 4% of rows. Which of the following can be applied on the relevant tables to achieve the query performance of such query? (Choose the best answer)

  1. Indexes
  2. UNION ชุดตัวดำเนินการ
  3. ตัวดำเนินการตั้งค่า MINUS
  4. ไม่มีข้อใดข้างต้น

Answer: A. ดัชนีเป็นวิธีที่ดีที่สุดในการบรรลุประสิทธิภาพการสืบค้น การดำเนินการ IO จำนวนมากสามารถลดและทำให้ง่ายขึ้นได้โดยใช้การสแกนดัชนี

91.In what scenarios can Indexes be useful?

  1. หากตารางมีขนาดใหญ่มาก
  2. หากคอลัมน์มีค่าน้อยกว่า
  3. หากคอลัมน์มีค่า NULL จำนวนมาก
  4. หากคอลัมน์มีค่าหลากหลาย

Answer: C, D.

92.The table EMPLOYEES is updated frequently. When can Indexes be created on this table? (Choose the most appropriate answer)

  1. ไม่ควรสร้างดัชนีหากมีการอัปเดตตารางบ่อยๆ
  2. ควรสร้างดัชนีในเวลาที่สร้างตาราง
  3. ทั้ง A และ B
  4. ไม่มีข้อใดข้างต้น

Answer: A. การดำเนินการ DML เป็นประจำหรือเป็นกลุ่มบนตารางที่มีดัชนีจะเพิ่มค่าใช้จ่ายในการรักษาเซ็กเมนต์ดัชนีซึ่งอาจส่งผลต่อประสิทธิภาพการทำงานของ DML

93.Consider the following query and answer the following query. Assume that the EMPLOYEE_ID , DEPARTMENT_ID and FIRST_NAME columns of EMPLOYEES table are indexed. (Assume the table structure as given)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SELECT first_name, last_name 
FROM employees 
WHERE comm IS NULL;

ดัชนีที่มีอยู่จะช่วยในกรณีนี้ได้หรือไม่หากมี 1 ล้านแถวในตาราง EMPLOYEES

  1. Yes
  2. No
  3. มันอาจช่วยได้
  4. ไม่มีข้อใดข้างต้น

Answer: B. ดัชนีจะไม่ใช้เมื่อเพรดิเคตคิวรีไม่มีคอลัมน์ที่สร้างดัชนี

94.Which of the following will remove an Index?

  1. DELETE FROM index_name;
  2. DROP INDEX index_name;
  3. DROP INDEX;
  4. ไม่มีข้อใดข้างต้น

Answer: B. คุณต้องมีสิทธิ์ DROP ANY INDEX เพื่อดร็อปดัชนี