การจัดการคำถามเกี่ยวกับข้อมูล
1.What does ACID mean with respect to relational database?
- ความถูกต้องความสม่ำเสมอการแยกฐานข้อมูล
- ความแม่นยำภาวะพร้อมกันการแยกความทนทาน
- ความสม่ำเสมอของอะตอมความสม่ำเสมอการแยกความทนทาน
- อะตอมมิก, ภาวะพร้อมกัน, การแยก, ความทนทาน
Answer: C. ธุรกรรม Oracle ทั้งหมดเป็นไปตามคุณสมบัติพื้นฐานของธุรกรรมฐานข้อมูลซึ่งเรียกว่าคุณสมบัติ ACID Atomicity ระบุว่างานทั้งหมดของธุรกรรมถูกดำเนินการหรือไม่มีเลย ไม่มีธุรกรรมบางส่วน ความสอดคล้องหมายถึงธุรกรรมจะนำฐานข้อมูลจากสถานะที่สอดคล้องกันหนึ่งไปยังอีกสถานะหนึ่งที่สอดคล้องกัน การแยกตัวหมายถึงผลของธุรกรรมจะไม่ปรากฏให้เห็นกับธุรกรรมอื่น ๆ จนกว่าจะมีการตกลงทำธุรกรรม ความทนทานหมายถึงการเปลี่ยนแปลงที่เกิดขึ้นจากธุรกรรมที่ตกลงกันไว้จะถาวร หลังจากธุรกรรมเสร็จสิ้นฐานข้อมูลจะช่วยให้มั่นใจได้ว่ากลไกการกู้คืนจะไม่สูญหายไปจากการเปลี่ยนแปลงจากธุรกรรม
2. What does the word DML stands for in Oracle SQL?
- ภาษาการจัดการความทนทาน
- ภาษาจัดการฐานข้อมูล
- ภาษาการจัดการฐานข้อมูล
- ไม่มีข้อใดข้างต้น
Answer: C. DML ย่อมาจาก Data Manipulation Language
3. Which of the following are DML commands in Oracle Database?
- SELECT
- GROUP BY
- INTERSECT
- INSERT
Answer: A, D. ด้วยเหตุผลที่เข้มงวด SELECT เป็นคำสั่ง DML เนื่องจากเป็นหนึ่งในประโยคบังคับสำหรับการจัดการข้อมูลที่มีอยู่ในตาราง
4.Which of the following DML commands can be considered to be a hybrid of INSERT and UPDATE in a single statement?
- INTERSECT
- INSERT
- SELECT
- MERGE
Answer: D. MERGE สามารถดำเนินการ INSERT และ UPDATE ในคำสั่งเดียวใน Oracle
5. What all operations can MERGE statement perform in SQL?
- INSERT
- DELETE
- GROUP BY
- ไม่มีข้อใดข้างต้น
Answer: A, B. ในบางเงื่อนไข MERGE สามารถดำเนินการลบได้เช่นกันพร้อมกับ INSERT และ UPDATE
6.Which of following commands is a DDL (Data Definition Language) command but is often considered along with DML commands?
- DELETE
- INSERT
- TRUNCATE
- ไม่มีข้อใดข้างต้น
Answer: C. TRUNCATE เป็นคำสั่ง DDL จะลบระเบียนออกจากตารางโดยไม่มีเงื่อนไขใด ๆ ไม่ใช่ส่วนหนึ่งของธุรกรรมที่กำลังดำเนินอยู่และธุรกรรมที่ไม่ถูกผูกมัดในเซสชันจะถูกคอมมิตหลังจากดำเนินการ TRUNCATE
7.Which of the following commands manipulate data basically?
- MINUS
- UPDATE
- TRUNCATE
- ทั้งหมดที่กล่าวมา
Answer: B, C. UPDATE เป็นคำสั่ง DML เพื่อแก้ไขค่าคอลัมน์ในตาราง TRUNCATE จัดการข้อมูลโดยการลบออกจากตารางโดยไม่มีเงื่อนไข
8. Which of the following commands is used to populate table rows with data?
- DELETE
- INSERT
- SELECT
- UPDATE
Answer: B. คำสั่ง INSERT ใช้เพื่อแทรกแถวในตาราง
9. What is true about the INSERT statement? (Choose the most appropriate answer)
- สามารถแทรกข้อมูลในหนึ่งแถวของตารางได้ครั้งละหนึ่งตาราง
- สามารถแทรกข้อมูลในหลายแถวของตารางหนึ่งครั้ง
- สามารถแทรกข้อมูลในหลาย ๆ แถวของตารางได้พร้อมกัน
- ทั้งหมดที่กล่าวมา
Answer: C. คำสั่ง INSERT สามารถแทรกแถวหรือชุดของแถวในตารางเดียวได้ในแต่ละครั้ง
10.What is true about the insertion of rows in tables?
- สามารถแทรกแถวแบบสุ่ม
- สามารถแทรกแถวจำนวนเท่าใดก็ได้ในตารางโดยไม่มีข้อ จำกัด
- โดยทั่วไปแถวจะถูกแทรกในตารางตามกฎบางอย่างที่เรียกว่าข้อ จำกัด
- ทั้งหมดที่กล่าวมา
Answer: C. ข้อ จำกัด คือกฎทางธุรกิจที่กำหนดไว้ในคอลัมน์เพื่อให้แน่ใจว่าข้อมูลที่มาในคอลัมน์มีลักษณะการทำงาน ข้อ จำกัด เหล่านี้ได้รับการตรวจสอบความถูกต้องสำหรับข้อมูลในระหว่างกระบวนการ INSERT
11. What is true about the INSERT statement in Oracle SQL? (Choose the most appropriate answer)
- คำสั่ง INSERT สามารถแทนที่ข้อ จำกัด ใด ๆ ที่วางบนโต๊ะได้
- ไม่สามารถใช้คำสั่ง INSERT บนโต๊ะได้หากวางข้อ จำกัด ไว้บนโต๊ะแล้ว
- สามารถใช้คำสั่ง INSERT บนตารางได้ก็ต่อเมื่อมีการวางข้อ จำกัด ไว้บนโต๊ะแล้ว
- คำสั่ง INSERT ไม่สามารถแทรกแถวที่ละเมิดข้อ จำกัด ได้
Answer: D. Oracle จะยกข้อยกเว้นหากข้อมูลใด ๆ ที่มีอยู่ในคำสั่ง insert ละเมิดข้อ จำกัด
Consider the following data set from the EMPLOYEES table along with its structure and answer the questions 12, 13 and 14:
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)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE CLERK
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
12. Examine the structure of the EMPLOYEES table. You issue the following command:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id) VALUES (5100, 'BRUCE', 'CLERK');
สมมติว่ามีข้อ จำกัด ในการตรวจสอบค่าที่ซ้ำกันในคอลัมน์ EMPLOYEE_ID ผลลัพธ์ของข้อความข้างต้นจะเป็นอย่างไร
- มันจะแทรกแถวอื่นที่มีค่า 5100 BRUCE CLERK
- มันจะแทรกแถวอื่นที่มีค่า 51002 BRUCE CLERK
- จะทำให้เกิดข้อผิดพลาด ORA 'ข้อ จำกัด ที่ละเมิด'
- ไม่มีข้อใดข้างต้น
Answer: C. เนื่องจากแถวที่มีค่า "5100, BRUCE, CLERK" มีอยู่แล้วในตารางจึงไม่สามารถใช้คำสั่งแทรกที่มีชุดข้อมูลเดียวกันได้
13.You issue the following command to the data set shown above:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id) VALUES (51003,'BRUCE','CLERK');
ผลลัพธ์ของคำสั่งนี้จะเป็นอย่างไร?
- มันจะแทรกแถวใหม่ด้วยค่า 51003 BRUCE CLERK
- มันจะทำให้เกิดข้อผิดพลาด ORA เนื่องจากไม่มี BRUCE อื่นที่เป็น CLERK
- จะทำให้เกิดข้อผิดพลาด ORA 'ข้อ จำกัด ที่ละเมิด'
- ไม่มีข้อใดข้างต้น
Answer: A. เนื่องจากไม่มีข้อ จำกัด ในคอลัมน์ FIRST_NAME และ job_id INSERT จึงทำงานโดยไม่มีข้อผิดพลาดใด ๆ
14. You issue the following command to the data set shown above:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id ) VALUES (51003,'BRUCE', NULL);
ผลลัพธ์ของคำสั่งนี้จะเป็นอย่างไร?
- มันจะแทรกแถวใหม่ด้วยค่า 51003 BRUCE CLERK
- มันจะทำให้เกิดข้อผิดพลาด ORA เนื่องจากไม่มี BRUCE อื่นที่เป็น CLERK
- จะทำให้เกิดข้อผิดพลาด ORA 'ข้อ จำกัด ที่ละเมิด'
- มันจะแทรกแถวใหม่ด้วยค่า 51003 BRUCE NULL
Answer: D. เนื่องจากไม่มีข้อ จำกัด NOT NULL ในคอลัมน์ FIRST_NAME และ JOB_ID ค่า NULL จะถูกแทรก
15. What among the following can be said regarding inserting of rows in tables?
- ผู้ใช้ไม่สามารถแทรกแถวแบบโต้ตอบได้
- แบบสอบถามสามารถเขียนโดยใช้ตัวแปรทดแทนสำหรับการแทรกแถวแบบโต้ตอบโดยผู้ใช้
- เมื่อผู้ใช้ได้รับแจ้งให้แทรกแถวการแทรกจะไม่ทำงานและจะแสดงข้อผิดพลาด ORA
- ไม่มีข้อใดข้างต้น
Answer: B. คำสั่ง INSERT สามารถใช้ตัวแปรทดแทนเพื่อแจ้งให้ผู้ใช้ป้อนค่าในระหว่างรันไทม์ มีวิธีการแทรกข้อมูลลงในตารางแบบโต้ตอบ
16.Which of the following can be used to insert rows in tables?
- SELECT
- INSERT
- Sub-queries
- ทั้งหมดที่กล่าวมา
Answer: D. คำสั่ง INSERT สามารถใช้ประโยชน์จาก INSERT อย่างชัดเจน INSERT-SELECT หรือวิธีการสืบค้นย่อยเพื่อแทรกข้อมูลลงในตาราง
17. Which among the following is a common technique for inserting rows into a table? (Choose the most sensible and appropriate answer)
- ใช้คำสั่ง SELECT
- พิมพ์ค่าแต่ละค่าลงในส่วนคำสั่ง INSERT ด้วยตนเอง
- การใช้ตัวดำเนินการ SET
- ไม่มีข้อใดข้างต้น
Answer: A. การใช้คำสั่ง SELECT เป็นเทคนิคที่พบบ่อยที่สุดในการแทรกแถวลงในตาราง ช่วยลดความพยายามในการป้อนค่าด้วยตนเองสำหรับแต่ละคอลัมน์
18.Which of the following commands is used to change the rows that already exist in a table?
- INSERT
- UNION
- UPDATE
- SELECT
Answer: C. UPDATE เป็นคำสั่ง DML ซึ่งใช้เพื่อแก้ไขค่าคอลัมน์ในตาราง
19.What is true about the UPDATE command?
- สามารถอัปเดตได้ครั้งละหนึ่งแถวเท่านั้น
- สามารถอัปเดตได้ครั้งละ 100 แถวเท่านั้น
- สามารถอัปเดตแถวได้ไม่ จำกัด ครั้งละจำนวนมาก
- ไม่มีข้อใดข้างต้น
Answer: C. การอัปเดตสามารถอัปเดตหลายแถวในหนึ่งแถวขึ้นไปในแต่ละครั้งตามเงื่อนไขคำสั่ง WHERE
20.Which of the following clauses decides how many rows are to be updated?
- SELECT
- WHERE
- FROM
- ทั้งหมดที่กล่าวมา
Answer: B. คำสั่ง UPDATE ใช้ประโยชน์จากคำสั่ง WHERE เพื่อจับภาพชุดของแถวที่ต้องมีการปรับปรุง
21.What among the following is true about the UPDATE statement? (Choose the most appropriate answer)
- การอัปเดตสามารถอัปเดตแถวจากตารางเดียวเท่านั้น
- UPDATE สามารถอัปเดตแถวจากหลายตาราง
- คำสั่ง UPDATE เดียวไม่สามารถส่งผลกระทบต่อแถวในหลายตาราง
- ไม่มีข้อใดข้างต้น
Answer: A, C. คำสั่ง UPDATE มีผลต่อแถวของตารางเดียวเท่านั้นและไม่ใช่หลายตาราง
Consider the following data set from the EMPLOYEES table and its structure. Answer questions 22 to 24 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)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE CLERK
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
22. You need to change the JOB_ID for Bruce (Employee Id 7389) to 'ACCOUNTANT'. Which of the following statements will you fire?
UPDATE employees SET job_id = 'ACCOUNTANT' WHERE employee_id = 7389;
INSERT INTO EMPLOYEES (employee_id , first_name , job_id ) VALUES (5100,'BRUCE', 'ACCOUNTANT');
UPDATE employees SET job_id = 'ACCOUNTANT' WHERE job_id = 'CLERK';
UPDATE employees SET job_id = 'ACCOUNTANT';
Answer: A. ตัวเลือก B ล้มเหลวเนื่องจากแก้ไขรหัสงานของเสมียนทั้งหมดเป็น ACCOUNTANT ตัวเลือก C ผิดเนื่องจากอัปเดตรหัสงานเป็น ACCOUNTANT สำหรับพนักงานทั้งหมดในตาราง
Answer the following questions 23 and 24 based on the below actions -
คุณใช้แบบสอบถามต่อไปนี้ในตารางพนักงานพร้อมชุดข้อมูลดังที่แสดงด้านบน
UPDATE employees
Set job_id = NULL
Where employee_id = 51000;
ชุดข้อมูลจะเป็นดังที่แสดงด้านล่าง: (สมมติว่ามีข้อ จำกัด ของค่าที่ซ้ำกันในคอลัมน์ EMPLOYEE_ID)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
23. Suppose you fire an UPDATE statement to update Bruce's JOB_ID to 'SALESMAN' (with respect to the data set shown above). What will be the outcome of the query?
- รหัสงานของ Bruce จะยังคงเป็น NULL
- รหัสงานของ Bruce จะถูกแก้ไขเป็น 'SALESMAN'
- ข้อผิดพลาด ORA
- ไม่มีการตอบสนอง
Answer: B. UPDATE จะเพิ่มค่าใหม่ให้กับค่า NULL โดยเปลี่ยน NULL เป็นค่าใหม่
24. You issue an UPDATE statement to update the employee id 7389 to 7900. You query the employee by its id '7389' before committing the transaction. What will be the outcome?
- การอัปเดตจะทำงานได้สำเร็จในขณะที่การเลือกจะแสดง 7389
- การอัปเดตจะทำงานได้สำเร็จในขณะที่การเลือกจะไม่แสดงบันทึก
- ข้อ จำกัด ของ EMPLOYEE_ID จะไม่อนุญาตให้อัปเดต
- จะอัปเดตสำเร็จ แต่ค่าทั้งหมดสำหรับ EMPLOYEE_ID 7389 จะกลายเป็น NULL
Answer: B. ข้อความค้นหาในเซสชันสอดคล้องกับธุรกรรมที่ดำเนินอยู่ หากการสืบค้นเดียวกันจะถูกเรียกใช้ในเซสชันอื่นจะมีการแสดงเร็กคอร์ดของพนักงานด้วย id 7389 เนื่องจากธุรกรรมที่ใช้งานอยู่ในเซสชันแรกยังไม่ถูกกำหนด
25. What among the following is a typical use of an UPDATE statement? (Select the most appropriate answer)
- เพื่อดึงข้อมูลแถวและอัปเดตคอลัมน์อื่น ๆ ของแถวนั้น
- เพื่อแก้ไขแถวทั้งหมดสำหรับบางคอลัมน์
- เพื่อแก้ไขแถวทั้งหมดสำหรับคอลัมน์ทั้งหมดของตาราง
- ไม่มีข้อใดข้างต้น
Answer: A. แม้ว่าคำสั่ง UPDATE สามารถแก้ไขค่าคอลัมน์ทั้งหมดในทุกแถว แต่โดยทั่วไปแล้วจะใช้เพื่อเลือกแถวและอัปเดตคอลัมน์อย่างน้อยหนึ่งคอลัมน์
26. Which of the following practices appropriately describe for selecting which row set to update using the UPDATE statement?
- หากต้องการอัปเดตบางแถวสามารถใช้ข้อ จำกัด ของคีย์หลักได้
- หากต้องอัปเดตแถวทั้งหมดจะพิจารณา WHERE clause ได้
- ในการอัปเดตชุดของแถวให้ใช้ WHERE ในการอัปเดตแถวทั้งหมดของตารางให้ใส่ข้อ จำกัด ของคีย์หลักบนตาราง
- ไม่มีข้อใดข้างต้น
Answer: C.
27. Which of the following columns in a table are not usually updated?
- คอลัมน์ประเภทยาวในตาราง
- คอลัมน์ลอบในตาราง
- คอลัมน์คีย์หลักซึ่งทำหน้าที่เป็นข้อมูลอ้างอิงคีย์ต่างประเทศในตารางอื่น
- ทั้งหมดที่กล่าวมา
Answer: C. ตามแนวทางปฏิบัติทั่วไปคอลัมน์คีย์หลักที่ทำหน้าที่อ้างอิงคีย์ต่างประเทศในตารางอื่นไม่ควรอัปเดต แม้ว่าจะสามารถอัปเดตได้โดยการเลื่อนข้อ จำกัด ซึ่งมักไม่แนะนำ
Consider the following data set and structure of the EMPLOYEES table and answer the questions 28 and 29 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)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE NULL
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
28. You issue an UPDATE statement as follows:
UPDATE employees
SET job_id = NULL;
ผลของข้อความข้างต้นจะเป็นอย่างไร?
- แถวแรกของชุดข้อมูลจะได้รับการอัปเดตเป็น NULL
- คอลัมน์ที่ 3 ของแถวแรกจะได้รับการอัปเดตเป็น NULL
- คอลัมน์ที่ 3 ของแถวทั้งหมดจะได้รับการอัปเดตเป็น NULL
- และข้อผิดพลาด ORA จะถูกโยนทิ้ง
Answer: C. คำสั่ง UPDATE ที่ไม่มีคำสั่ง WHERE จะอัปเดตแถวทั้งหมดของตาราง
29. You issue an UPDATE statement as follows:
UPDATE employees
SET employee_id = NULL;
WHERE job_id = 'CLERK';
ผลของข้อความข้างต้นจะเป็นอย่างไร? (ในที่นี้คอลัมน์ EMPLOYEE_ID ถูกทำเครื่องหมายว่าจำเป็นโดยใส่ข้อ จำกัด )
- คอลัมน์แรกของชุดข้อมูลจะได้รับการอัปเดตเป็น NULL
- คอลัมน์ที่ 3 ของแถวแรกจะได้รับการอัปเดตเป็น NULL
- คอลัมน์ที่ 3 ของแถวทั้งหมดจะได้รับการอัปเดตเป็น NULL
- และข้อผิดพลาด ORA จะถูกโยนทิ้ง
Answer: D. ต้องปฏิบัติตามข้อ จำกัด ในคอลัมน์ขณะอัปเดตค่า ในคำสั่ง UPDATE ที่ระบุข้อผิดพลาดจะเกิดขึ้นเนื่องจากคอลัมน์ EMPLOYEE_ID เป็นคีย์หลักในตาราง EMPLOYEES ซึ่งหมายความว่าไม่สามารถเป็น NULL ได้
30. Which of the following commands can be used to remove existing records from a table?
- UPDATE
- INSERT
- MINUS
- DELETE
Answer: D. DELETE ใช้เพื่อลบระเบียนออกจากตารางซึ่งสามารถเลือกได้ตามเงื่อนไข เป็นคำสั่ง DML เป็นส่วนหนึ่งของธุรกรรม
31. What among the following is true about the DELETE statement?
- คำสั่ง DELETE จะต้องมาพร้อมกับคำสั่ง WHERE
- ไม่บังคับให้เขียน WHERE clause ด้วยคำสั่ง DELETE
- DELETE สามารถลบข้อมูลจากตารางหลายตารางได้
- ไม่มีข้อใดข้างต้น
Answer: B. เพรดิเคตส่วนคำสั่ง WHERE เป็นทางเลือกในคำสั่ง DELETE ถ้าไม่ใส่คำสั่ง WHERE แถวทั้งหมดของตารางจะถูกลบ
32.What among the following happens when we issue a DELETE statement on a table? (Choose the most appropriate answer)
- ข้อความแจ้งจะปรากฏขึ้นเพื่อถามผู้ใช้ว่าแน่ใจหรือไม่ที่จะลบแถวที่ร้องขอ
- แถวที่ปฏิบัติตามเงื่อนไขที่กำหนดในคำสั่ง DELETE จะถูกลบออกทันที
- แถวที่ร้องขอจะถูกลบออกทันทีโดยไม่ต้องแจ้งให้ทราบ
- ไม่มีข้อใดข้างต้น
Answer: C. เนื่องจากเป็นส่วนหนึ่งของธุรกรรมที่ใช้งานอยู่หรือธุรกรรมใหม่แถวในตารางจะถูกลบออก
33.Consider the following data set from the EMPLOYEES table and its 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)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
คุณต้องลบข้อมูลออกจากคอลัมน์ JOB_ID ในแถวที่มีพนักงาน_id 51001 คำค้นหาใดต่อไปนี้จะถูกต้อง
UPDATE employees SET job_id = NULL WHERE employee_id = 51001;
DELETE job_id FROM employees WHERE employee_id = 51001;
DELETE FROM employees;
- ไม่มีข้อใดข้างต้น
Answer: D. คุณไม่สามารถลบค่าคอลัมน์เฉพาะสำหรับแถวใดแถวหนึ่งด้วยคำสั่ง DELETE ทั้งแถวจะถูกลบตามเงื่อนไขที่กำหนด ค่าที่ไม่ต้องการในคอลัมน์สามารถอัปเดตเป็น NULL ได้ ตัวเลือก 'A' อยู่ใกล้ แต่ไม่ถูกต้องในบริบทของคำถาม
34. What is the difference between the UPSERT and MERGE statements?
- ไม่มีความแตกต่างกัน
- UPSERT เป็นคำศัพท์ล่าสุดที่ใช้สำหรับคำสั่ง MERGE ซึ่งล้าสมัยไปแล้ว
- UPSERT สามารถดำเนินการลบซึ่ง MERGE ไม่สามารถทำได้
- MERGE ทำการ INSERT, UPDATE และ DELETE, UPSERT ทำเฉพาะ UPDATE และ INSERT
Answer: D. UPSERT เป็นคำสั่งที่ล้าสมัยและ MERGE เข้ามาพร้อมกับความสามารถใหม่ ๆ
35. What is the difference between the MERGE command and the commands INSERT, UPDATE and DELETE?
- คำสั่ง MERGE ใช้เวลามากกว่าการดำเนินการแต่ละครั้ง (INSERT, UPDATE, DELETE) ที่ทำแยกกัน
- MERGE ล้าสมัยหลังจาก Oracle 10g
- MERGE สามารถดำเนินการทั้งสามอย่างบนโต๊ะในขณะที่ INSERT, UPDATE และ DELETE ดำเนินการทีละรายการ
- ไม่มีข้อใดข้างต้น
Answer: C. คำสั่งผสานสามารถฝังการดำเนินการทั้งสามบนตารางในคำสั่งเดียวในขณะที่ INSERT, UPDATE และ DELETE ดำเนินการทีละหนึ่งการดำเนินการ
36. Which of the following objects can be the data source in a MERGE statement?
- ตารางเท่านั้น
- แบบสอบถามย่อยเท่านั้น
- ตารางหรือแบบสอบถามย่อย
- ทั้ง A หรือ B
Answer: C. การผสานทำงานได้ดีกับตารางหรือแบบสอบถามย่อย
37. What among the following is a TRUNCATE statement equivalent to? (Choose the most suitable answer)
- เป็นคำสั่ง DELETE
- ไปยังคำสั่ง UPDATE
- คำสั่ง DELETE ที่ไม่มีคำสั่ง WHERE
- ไม่มีข้อใดข้างต้น
Answer: C. TRUNCATE ลบแถวทั้งหมดในคำสั่งเดียว
38.Which of the following situations indicate that a DML operation has taken place?
- เมื่อมีการเพิ่มแถวใหม่ในตาราง
- เมื่อสองแบบสอบถามรวมกัน
- เมื่อตารางถูกตัดทอน
- ไม่มีข้อใดข้างต้น
Answer: A. เมื่อแถวที่มีอยู่ในตารางถูกแทรกแก้ไขหรือลบออกจากตารางจะดำเนินการผ่านคำสั่ง DML
39.Which of the following best defines a transaction?
- ธุรกรรมประกอบด้วยคำสั่ง DDL บนสคีมาฐานข้อมูล
- ธุรกรรมประกอบด้วย COMMIT หรือ ROLLBACK ในเซสชันฐานข้อมูล
- ธุรกรรมประกอบด้วยชุดคำสั่ง DML หรือคำสั่ง DDL หรือ DCL หรือ TCL เพื่อสร้างหน่วยตรรกะของงานในเซสชันฐานข้อมูล
- ธุรกรรมประกอบด้วยการรวบรวมคำสั่ง DML และ DDL ในเซสชันต่างๆของฐานข้อมูล
Answer: C. ธุรกรรมฐานข้อมูลประกอบด้วยคำสั่ง DML อย่างน้อยหนึ่งรายการเพื่อสร้างการเปลี่ยนแปลงที่สอดคล้องกันหนึ่งรายการหรือคำสั่ง DDL หรือคำสั่ง DCL (GRANT หรือ REVOKE) เริ่มต้นด้วยคำสั่ง DML แรกและลงท้ายด้วยคำสั่ง DCL หรือ DDL หรือ TCL (COMMIT หรือ ROLLBACK) โปรดทราบว่าคำสั่ง DDL และ DCL มีคุณสมบัติการคอมมิตอัตโนมัติ
40. What does a collection of DML statements that form a logical unit work known as?
- คุณสมบัติของกรด
- UNION
- ยูเนี่ยนทั้งหมด
- Transaction
Answer: D.
41.What happens when a DML statement in an active transaction encounters an error on execution?
- ธุรกรรมทั้งหมดจะถูกย้อนกลับ
- DML ในธุรกรรมเป็นเอกสิทธิ์เฉพาะบุคคลและด้วยเหตุนี้จึงสามารถดำเนินการต่อได้
- DML อื่น ๆ ในธุรกรรมถูกขัดจังหวะและรอจนกว่าข้อผิดพลาดจะได้รับการแก้ไข
- ไม่มีข้อใดข้างต้น
Answer: A. หากคำสั่ง DML ใด ๆ ในธุรกรรมที่ใช้งานอยู่พบข้อผิดพลาดธุรกรรมทั้งหมดจะจบลงด้วยการย้อนกลับ
42.What is true about the keyword VALUES in INSERT statements?
- VALUES สามารถเพิ่มได้หลายแถวพร้อมกันระหว่าง INSERT
- VALUES สามารถเพิ่มได้ครั้งละ 100 แถวเท่านั้นในระหว่าง INSERT
- จำเป็นต้องใช้ VALUES หากเราใช้คำหลัก INSERT
- VALUES เพิ่มทีละแถวเท่านั้น
Answer: D. คีย์เวิร์ด VALUES จะใช้เฉพาะเมื่อมีการระบุค่าคอลัมน์อย่างชัดเจนในคำสั่ง INSERT
Consider the following statement and the table structure. Answer the questions 43 to 45 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)
INSERT INTO departments (department_id , department_name , manager_id, location_id )
VALUES (100, 'Human Resources', 121, 1000);
43. How many rows will be inserted by the above statement?
- 0
- 2
- 3
- 1
Answer: D. เมื่อใช้คีย์เวิร์ด VALUES จะแทรกทีละแถวเท่านั้น
44. In which order the values will get inserted with respect to the above INSERT statement?
- Location_id, manager_id, department_name, department_id
- department_id, department_name, manager_id, location_id
- department_id, manager_id, department_name, location_id
- department_id, department_name, location_id, manager_id
Answer: B. หากมีการกล่าวถึงคอลัมน์ในส่วนคำสั่ง INSERT คีย์เวิร์ด VALUES ควรมีค่าในลำดับเดียวกัน
45. Suppose the above given statement is modified as below:
INSERT INTO departments VALUES (100, 'Human Resources', 121, 1000);
ผลของการปรับเปลี่ยนนี้จะเป็นอย่างไร? สมมติว่าตาราง DEPARTMENTS มีสี่คอลัมน์ ได้แก่ department_id, DEPARTMENT_NAME, MANAGER_ID และ LOCATION_ID
- มันจะแทรกค่าลงในคอลัมน์ทั้งหมดของตารางแผนกโดยสมมติว่าค่าของคอลัมน์ถูกจัดเตรียมไว้ในลำดับเดียวกันกับคอลัมน์ในตาราง
- จะทำให้เกิดข้อผิดพลาด ORA เนื่องจากไม่ได้กล่าวถึงชื่อคอลัมน์อย่างชัดเจน
- จะทำให้เกิดข้อผิดพลาด ORA เนื่องจากมีการใช้อนุประโยค VALUES ใน INSERT อย่างไม่ถูกต้อง
- ไม่มีข้อใดข้างต้น
Answer: A. การรวมชื่อคอลัมน์ในคำสั่ง INSERT เป็นทางเลือกหากค่าต้องสอดคล้องกับจำนวนและลำดับของคอลัมน์ในตาราง
46. What will be the outcome of the below INSERT statement? (Consider the 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)
INSERT INTO EMPLOYEES (employee_id , hire_date) VALUES (210,"21-JUN-2013");
- จะแทรกเฉพาะรหัสพนักงานและวันที่จ้างของพนักงานโดยเว้นคอลัมน์อื่น ๆ ทั้งหมดไว้เป็นช่องว่าง
- มันจะแทรกเฉพาะรหัสพนักงาน
- มันจะทำให้เกิดข้อผิดพลาด ORA
- ไม่มีข้อใดข้างต้น
Answer: C. การจัดรูปแบบตามตัวอักษรวันที่มีข้อผิดพลาด ควรอยู่ในเครื่องหมายคำพูดเดี่ยวและไม่ใช่เครื่องหมายคำพูดคู่
47.What will be the outcome of the below INSERT statement? (Consider 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)
INSERT INTO EMPLOYEES (employee_id , first_name) VALUES (210,"Bryan");
- มันจะแทรกเฉพาะรหัสพนักงานและชื่อของไบรอันโดยเว้นคอลัมน์อื่น ๆ ทั้งหมดไว้เป็นช่องว่าง
- มันจะแทรกเฉพาะชื่อแรก
- มันจะทำให้เกิดข้อผิดพลาด ORA
- ไม่มีข้อใดข้างต้น
Answer: C. การจัดรูปแบบตัวอักษรสตริงมีข้อผิดพลาด ควรอยู่ในเครื่องหมายคำพูดเดี่ยวและไม่ใช่เครื่องหมายคำพูดคู่
48. Suppose you need to insert the name O'Callaghan as the last name of the employees table. Which of the following queries will give you the required results? (Consider 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)
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O'callahan');
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O"callahan');
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O' 'Callahan');
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,"O'callahan");
Answer: C.
49. What will be the outcome of the below INSERT statement? (Consider 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)
INSERT INTO EMPLOYEES (employee_id , first_name) VALUES ("210",'Bryan');
- มันจะส่งข้อผิดพลาดค่าตัวเลข
- มันจะแทรกเฉพาะรหัสพนักงานและชื่อของไบรอันโดยปล่อยให้คอลัมน์อื่น ๆ ทั้งหมดเป็น NULL
- มันจะแทรกเฉพาะรหัสพนักงาน
- ไม่มีข้อใดข้างต้น
Answer: A. ไม่ควรใส่ค่าตัวเลขไว้ในเครื่องหมายคำพูด
50. What will be the outcome of the below INSERT statement? (Consider 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)
INSERT INTO departments VALUES (200,'Accounts', NULL, NULL);
- มันจะทำให้เกิดข้อผิดพลาด ORA
- มันจะดำเนินการสำเร็จ แต่อาจมีการแทรกค่าผิดในคอลัมน์
- มันจะดำเนินการสำเร็จ
- ไม่มีข้อใดข้างต้น
Answer: C. NULL สามารถใช้ในส่วนคำสั่ง VALUES เพื่อเติมค่าคอลัมน์หรืออีกทางหนึ่ง
51. What will be the outcome of the below INSERT statement? (Assume there is a NOT NULL constraint on the department_id column and consider the table structure given)
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)
INSERT INTO departments VALUES (NULL, 'Accounts', NULL);
- มันจะทำให้เกิดข้อผิดพลาด ORA
- มันจะดำเนินการสำเร็จ แต่มีผลลัพธ์ที่ไม่ถูกต้อง
- มันจะดำเนินการสำเร็จ แต่มีผลลัพธ์ที่ถูกต้อง
- ไม่มีข้อใดข้างต้น
Answer: A. ไม่สามารถแทรกค่า NULL ในคอลัมน์ที่ไม่ใช่ศูนย์
52. What will be the outcome of the below INSERT statement? (Assume there is a NOT NULL constraint on the department_id column and consider the given table structure)
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)
INSERT INTO departments VALUES (200, 34, NULL);
- มันจะดำเนินการสำเร็จ แต่มีผลลัพธ์ที่ไม่ถูกต้อง
- มันจะทำให้เกิดข้อผิดพลาด ORA
- มันจะดำเนินการสำเร็จ แต่มีผลลัพธ์ที่ถูกต้อง
- ไม่มีข้อใดข้างต้น
Answer: B. ชนิดข้อมูลของค่าไม่ตรงกับชนิดข้อมูลของคอลัมน์ในตาราง
53. Which of the following commands is used to save the changed data in a table permanently?
- ROLLBACK
- COMMIT
- INSERT
- UPDATE
Answer: B. คำสั่ง TCL COMMIT ใช้เพื่อสิ้นสุดธุรกรรมที่แอ็คทีฟปัจจุบันในเซสชันโดยทำการเปลี่ยนแปลงข้อมูลที่รอดำเนินการทั้งหมดอย่างถาวรในตาราง
54. Which of the following commands allows undoing the changed data?
- ROLLBACK
- COMMIT
- INSERT
- UPDATE
Answer: A. คำสั่ง TCL ROLLBACK ใช้เพื่อสิ้นสุดธุรกรรมที่ใช้งานอยู่ปัจจุบันในเซสชันโดยการยกเลิกการเปลี่ยนแปลงข้อมูลที่รอดำเนินการทั้งหมด
55. Which of the following commands allows enabling markers in an active transaction?
- ROLLBACK
- COMMIT
- SAVEPOINT
- ไม่มีข้อใดข้างต้น
Answer: C. SAVEPOINT เป็นจุดหนึ่งในการทำธุรกรรมซึ่งแบ่งธุรกรรมออกเป็นส่วนย่อย ๆ
56. Which of the following commands prevents other users from making changes to a table?
- ROLLBACK
- COMMIT
- ตารางล็อค
- SAVEPOINT
Answer: C.
57. What is true about an INSERT statement which tries to insert values into a virtual column? (Choose the most appropriate answer)
- ไม่สามารถแทรกค่าในคอลัมน์เสมือน
- มันสามารถแทรกค่า
- มันแสดงข้อผิดพลาด ORA
- ทั้งหมดที่กล่าวมา
Answer: A. คอลัมน์เสมือนคือคอลัมน์ที่สร้างขึ้นโดยอัตโนมัติตามนิพจน์ที่มาที่กำหนดไว้ในข้อกำหนดคอลัมน์ ผู้ใช้ไม่สามารถแทรกค่าได้อย่างชัดเจน
58.Which of the following commands allows the user to insert multiple rows with a single statement?
- INSERT
- ใส่ทั้งหมด
- ยูเนี่ยนทั้งหมด
- ไม่มีข้อใดข้างต้น
Answer: B. การแทรกจำนวนมากสามารถทำได้โดยใช้ INSERT ALL
59. Which of the following is the syntax for inserting rows through a sub-query?
INSERT INTO tablename [{column_name,..}] subquery;
INSERT INTO tablename VALUES [{column_name,..}] subquery;
- ทั้งเอและบี
- ไม่มีข้อใดข้างต้น
Answer: A.
Consider the following exhibit of the EMPLOYEES table and answer the questions 60 to 63 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)
60. Which of the following queries will execute successfully?
UPDATE employees SET salary = salary + 1000 WHERE to_char (hire_date, 'YYYY') > '2006';
UPDATE employees SET salary = salary + 1000 WHERE to_date (hire_date, 'YYYY') > '2006';
UPDATE employees SET salary = salary + 1000 WHERE hire_date > to_date (substr ('01-jan-200',8));
UPDATE employees SET salary = salary + 1000 WHERE hire_date in (to_date ('JUN 01 11', to_date ('JUL 01 11'));
Answer: A.
61.Due to structural reorganization in the organization, you are asked to update department IDs for all the employees to NULL before the final decision is made public. Only those records should be updated which have the JOB_ID as NULL. Which of the following queries will work?
UPDATE employees SET department_id = NULL Where job_id = NULL;
UPDATE employees SET department_id = NULL Where job_id = TO_NUMBER(NULL);
UPDATE employees SET department_id = NULL Where job_id IS NULL;
UPDATE employees SET department_id = TO_NUMBER (' ', 9999) Where job_id = TO_NUMBER(NULL);
Answer: C. ใช้ตัวดำเนินการ IS NULL เพื่อตรวจสอบค่าคอลัมน์สำหรับค่าว่าง
62.You need to add a basic employee data into EMPLOYEES table. The basic data contains the last name as 'Bond' and department ID as 300. Which of the following statements will give the correct results?
INSERT INTO employees (employee_id , last_name, department_id ) (100,'Bond', (select department_id from departments where department_id = 300));
INSERT INTO employees (employee_id , last_name, department_id ) VALUES (100,'Bond', (select department_id from departments where department_id = 300));
INSERT INTO employees (employee_id , last_name, department_id ) VALUES ('100','Bond',300);
- ไม่มีข้อใดข้างต้น
Answer: B, C. คิวรีย่อยทำงานในคำสั่ง INSERT หากส่งคืนค่าสเกลาร์ของประเภทข้อมูลที่ตรงกันหรือเข้ากันได้กับคอลัมน์ที่ใช้
63. You fire the following query:
DELETE FROM EMPLOYEES;
สมมติว่าไม่มีธุรกรรมที่ใช้งานอยู่บนตาราง EMPLOYEES ในเซสชันใด ๆ ข้อความใดต่อไปนี้เป็นจริง
- จะลบแถวและโครงสร้างทั้งหมดของตาราง
- จะลบแถวทั้งหมดที่สามารถย้อนกลับได้
- จะลบแถวทั้งหมดอย่างถาวร
- ไม่มีข้อใดข้างต้น
Answer: B. ด้วยคำสั่ง DML ข้อมูลที่เปลี่ยนแปลงเนื่องจากการดำเนินการ DELETE จะถูกทำให้เป็นแบบถาวรหลังจากออก COMMIT ในเซสชันเท่านั้น
64.Consider the structure of the COUNTRY table as shown:
SQL> desc countries
Name Null? Type
----------------------- -------- ----------------
COUNTRY_ID NOT NULL CHAR(2)
COUNTRY_NAME VARCHAR2(40)
REGION_ID NUMBER
คุณออกคำสั่งต่อไปนี้ในเซสชัน
INSERT INTO COUNTRIES (1, 'Whales')
/
INSERT INTO COUNTRIES (2, 'England')
/
SAVEPOINT A;
UPDATE COUNTRIES
SET country_id= 100 where country_id= 1
/
SAVEPOINT B;
DELETE FROM COUNTRIES where country_id= 2
/
COMMIT
/
DELETE FROM COUNTRIES where country_id= 100
/
จะเกิดอะไรขึ้นเมื่อออกคำสั่ง ROLLBACK TO SAVEPOINT สำหรับเซสชันผู้ใช้
- การย้อนกลับทำให้เกิดข้อผิดพลาด
- เฉพาะคำสั่ง DELETE เท่านั้นที่จะย้อนกลับ
- ไม่มีการย้อนกลับคำสั่ง SQL
- ไม่มีข้อใดข้างต้น
Answer: A, C. เนื่องจากมีจุดบันทึกสองจุด - A และ B และคำสั่ง ROLLBACK ระบุเครื่องหมายจุดบันทึกจริง Oracle จึงแสดงข้อผิดพลาด
65.If a user issues a DML command and exits the SQL Developer abruptly without a COMMIT or ROLLBACK, what will be the outcome? (Assume the session is not auto commit)
- คอมมิตอัตโนมัติ
- ม้วนกลับอัตโนมัติ
- อาจเป็น COMMIT หรือ ROLLBACK เพื่อยุติการทำธุรกรรม
- ไม่มีข้อใดข้างต้น
Answer: B. เมื่อธุรกรรมถูกขัดจังหวะด้วยความล้มเหลวของระบบธุรกรรมทั้งหมดจะถูกย้อนกลับโดยอัตโนมัติ
66. Which of the following commands / statements would end a transaction?
- COMMIT
- SELECT
- SAVEPOINT
- CREATE
Answer: A, D. นอกเหนือจากคำสั่ง TCL เช่น COMMIT หรือ ROLLBACK แล้วคำสั่ง DDL และคำสั่ง DCL ยังมีคุณสมบัติการคอมมิตอัตโนมัติ ธุรกรรมที่ใช้งานอยู่จะถูกดำเนินการหากคำสั่ง DDL ถูกดำเนินการในเซสชันเดียวกัน
67.When does a transaction complete?
- เมื่อ ROLLBACK ถูกเรียกใช้งาน
- เมื่อมีการดำเนินการ COMMIT
- เมื่อ TRUNCATE ถูกเรียกใช้งาน
- ทั้งหมดที่กล่าวมา
Answer: D. ธุรกรรมจะเสร็จสมบูรณ์หากเรียกใช้คำสั่ง TCL, DCL หรือ DDL ในเซสชัน
68. Examine the given table structures and consider the following query:
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)
INSERT INTO EMPLOYEES (department_id ) VALUES
(select department_id FROM departments);
ผลลัพธ์ของข้อความค้นหาข้างต้นจะเป็นอย่างไร
- คอลัมน์ในตาราง EMPLOYEES และตารางแผนกไม่ตรงกัน
- คำสั่ง WHERE จำเป็นต้องใช้ในแบบสอบถามย่อย
- ไม่สามารถใช้คีย์เวิร์ด VALUES กับส่วนคำสั่ง INSERT เมื่อใช้เคียวรีย่อย
- ไม่มีข้อใดข้างต้น
Answer: C. การใช้คำหลัก VALUES ผิด ต้องใช้เฉพาะเมื่อคุณมีข้อมูลคอลัมน์อยู่ในมือซึ่งจะต้องถูกแทรกลงในตาราง
69.Examine the given table structure and consider the following query:
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 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)
UPDATE (select employee_id , job_id from employees)
SET hire_date = '01-JAN-13'
WHERE employee_id = (select employee_id FROM job_history);
ข้อใดต่อไปนี้เป็นจริงเกี่ยวกับคำค้นหาที่ระบุ
- มันจะไม่ดำเนินการเนื่องจากเราไม่สามารถใช้สองตารางในคำสั่งอัพเดตเดียว
- จะไม่ดำเนินการเนื่องจาก UPDATE ไม่สามารถใช้แบบสอบถามย่อยได้
- มันจะดำเนินการกับข้อ จำกัด ในคอลัมน์ที่ระบุ
- จะไม่ดำเนินการเนื่องจากใช้แบบสอบถามย่อยในส่วนคำสั่ง WHERE
Answer: C.
70.What happens when a transaction is committed?
- การเปลี่ยนแปลงที่เกิดขึ้นระหว่างการทำธุรกรรมจะถูกบันทึกไว้สำหรับเซสชันของผู้ใช้เฉพาะ
- การเปลี่ยนแปลงที่เกิดขึ้นระหว่างการทำธุรกรรมจะถูกยกเลิก
- หากธุรกรรมเป็น DDL การคอมมิตจะไม่ทำงาน
- ไม่มีข้อใดข้างต้น
Answer: D. การทำธุรกรรมจะบันทึกการเปลี่ยนแปลงข้อมูลที่รอดำเนินการลงในฐานข้อมูลอย่างถาวร
71. Which of the following reasons will the best one on the usage of string?
- การใช้แบบสอบถามย่อย
- ข้อผิดพลาดทางไวยากรณ์
- สิทธิ์การเข้าถึง
- การละเมิดข้อ จำกัด
Answer: C, B, D. การอ้างถึงวัตถุ / คอลัมน์ที่ไม่มีอยู่ปัญหาเรื่องพื้นที่อาจมีสาเหตุอื่น ๆ
72. What happens when an INSERT statement tries to insert records in an old table?
- คอลัมน์ทั้งหมดจะได้รับค่า NULL
- ตารางใหม่ที่มีชื่อเดียวกันจะถูกสร้างขึ้นโดยอัตโนมัติและจะมีการแทรกค่า
- INSERT ไม่สามารถทำงานได้และแสดงข้อผิดพลาด ORA
- ไม่มีข้อใดข้างต้น
Answer: C.
73. A user named 'Jonathan Adams' is able to SELECT columns from the EMPLOYEES table but he is unable to insert records into EMPLOYEES. What can be the reason?
- โจนาธานเชื่อมต่อกับฐานข้อมูลที่ไม่รองรับคำสั่ง INSERT
- ไม่สามารถใช้คำสั่ง INSERT กับพนักงานในตารางได้
- โจนาธานสามารถเข้าถึง SELECT แต่ไม่สามารถเข้าถึง INSERT INTO ตารางพนักงานได้
- ไม่มีข้อใดข้างต้น
Answer: C. ผู้ใช้สามารถเพลิดเพลินกับการเข้าถึงตารางตามความรับผิดชอบของตน หนึ่งสามารถเข้าถึงได้เฉพาะการอ่านบนโต๊ะในขณะที่คนอื่น ๆ สามารถเข้าถึงการอ่านและเขียนได้
74. Suppose 1 million rows are to be inserted into the AUDIT table. An INSERT transaction runs successfully for the first 1000 rows and an ORA error is thrown 'Constraint violated'. What will happen to the values inserted in the first 1000 rows?
- พวกเขาจะยังคงอยู่เหมือนเดิม
- พวกเขาทั้งหมดจะถูกลบ
- พวกเขาทั้งหมดจะถูกย้อนกลับ
- ไม่มีข้อใดข้างต้น
Answer: C. หากคำสั่ง DML ใด ๆ ในระหว่างการทำธุรกรรมพบข้อผิดพลาดธุรกรรมทั้งหมดจะถูกย้อนกลับ
Examine the table structure and consider the following query and answer the questions 75, 76 and 77 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)
INSERT INTO departments values (15, NULL);
75. What will be the outcome of this statement?
- มันจะแทรกแถวด้วย department_id = 15 และค่าอื่น ๆ ทั้งหมดเป็น NULL
- มันจะดำเนินการสำเร็จ แต่แทรก 0 แถวในตาราง
- มันจะส่งข้อผิดพลาด ORA เป็นหมายเลข ของคอลัมน์และค่าไม่ตรงกัน
- ไม่มีข้อใดข้างต้น
Answer: C. ตาราง DEPARTMENTS ประกอบด้วยสี่คอลัมน์ แต่คำสั่ง INSERT ให้ค่าสำหรับสองคอลัมน์เท่านั้นโดยไม่ต้องกล่าวถึงคอลัมน์ด้วย ดังนั้นข้อผิดพลาด ORA จึงเกิดขึ้น
76. What is true about the above INSERT statement?
- ถ้าคอลัมน์ไม่ได้กล่าวถึงในคำสั่ง INSERT ค่าจะถูกแทรกในตำแหน่งในคอลัมน์
- จำเป็นต้องกล่าวถึงคอลัมน์หลังคำสั่ง INSERT
- ทั้งเอและบี
- ไม่มีข้อใดข้างต้น
Answer: A. หากไม่ได้ระบุคอลัมน์ในคำสั่ง INSERT Oracle จะจับคู่ค่าแต่ละค่าตามลำดับและตำแหน่งกับคอลัมน์ในตาราง
77. With respect to the statement given above, what will happen if the table is altered to add a new column?
- คำสั่งจะยังคงใช้งานได้
- การดำเนินการคำสั่งจะทำให้เกิดข้อผิดพลาดเนื่องจากจะมีความไม่ตรงกันในหมายเลข ของคอลัมน์และค่า
- จะไม่มีการเปลี่ยนแปลงและคำสั่งจะดำเนินการเหมือนเดิม
- ไม่มีข้อใดข้างต้น
Answer: B. เนื่องจากไม่ได้ระบุคอลัมน์ไว้ก่อนหน้านี้ปัญหาจะยังคงมีอยู่ การแมปค่าคอลัมน์ที่ไม่ตรงกันอาจทำให้เกิดข้อผิดพลาด ORA
Examine the table structure given below and consider the following queries and answer the questions 78 and 79 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)
Query 1:
INSERT INTO employees (employee_id , last_name, hire_date)
VALUES (100, 'ADAMS','21-DEC-12');
Query 2:
INSERT INTO employees (employee_id , last_name, hire_date)
VALUES (100, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY'));
78. Which of the above two queries is better?
- ทั้งสองอย่างดีกว่า
- Query 1 เท่านั้นที่ดีกว่า
- Query 2 เท่านั้นที่ดีกว่า
- ไม่มีคำค้นหาใดที่ถูกต้อง
Answer: C. Query-2 ดีกว่าเนื่องจากแทรกค่าวันที่เป็นวันที่ไม่ใช่สตริง แม้ว่า Oracle จะทำการแปลงสตริงลิเทอรัลโดยปริยายที่ระบุเป็นวันที่ แต่ไม่แนะนำ
79. Which of the following queries is equivalent of the query 2 given above?
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (101-1, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY'));
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (99+1, upper('ADAMS'),to_date('22-DEC-12','DD-MON-YY') +1 );
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (100, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY') - 1);
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (100, upper('ADAMS'),to_date('28-DEC-12','DD-MON-YY')-7 );
Answer: A, C, D. สามารถใช้การดำเนินการทางคณิตศาสตร์ / ฟังก์ชันเพื่อแทรกค่าตามที่แสดงด้านบน
80. You need to copy the data from one table to another table. Which of the following methods can be used?
- คุณสามารถใช้คำสั่ง COPY
- คุณสามารถใช้คำสั่ง INSERT
- คุณสามารถใช้คำสั่ง UPDATE
- ไม่มีข้อใดข้างต้น
Answer: B. การดำเนินการเส้นทางตรง INSERT-AS-SELECT (IAS) เป็นวิธีที่ใช้กันมากที่สุดในการคัดลอกข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่ง
81.Which of the following statements will copy data from the JOB_HISTORY table to the JOB_HISTORY_ARCHIVE table? (Consider the table structure 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)
INSERT INTO job_history values (select * from job_history);
INSERT INTO JOB_HISTORY_ARCHIVE values (select * from job_history_archive);
INSERT INTO JOB_HISTORY_ARCHIVE select * from job_history;
- ไม่มีข้อใดข้างต้น
Answer: C. ตัวเลือก 'C' แสดงวิธีการใช้ IAS (INSERT-AS-SELECT) อย่างถูกต้อง
Examine the given table structure. Consider the following query and answer the questions 82 and 83 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)
INSERT ALL
WHEN job_id = 'SA_REP' then
INTO employees (employee_id , department_id , salary, hire_date)
VALUES (employee_id , 10, salary, hire_date)
WHEN job_id <> 'SA_REP' then
INTO employees (employee_id , department_id , salary, hire_date)
VALUES (employee_id , 20, salary, hire_date)
SELECT employee_id , department_id , job_id, salary, commission_pct , hire_date
FROM employees
WHERE hire_date > sysdate - 30;
82. Interpret the output of the above INSERT statement.
- โยนข้อผิดพลาด
- จะแทรกบันทึกสำหรับพนักงานทุกคนที่ได้รับการว่าจ้างหนึ่งเดือนก่อนวันที่ sysdate
- จะแทรกบันทึกสำหรับพนักงานทุกคนที่เป็นพนักงานขายในแผนก 10
- ไม่มีข้อใดข้างต้น
Answer: B, C. INSERT ALL สามารถทำการแทรกแบบมีเงื่อนไขลงในตารางเป้าหมาย
83. Which employees' data will be inserted in the department 20?
- พนักงานขาย
- Accountants
- ทั้ง A หรือ B
- ไม่มีข้อใดข้างต้น
Answer: B. ตามคำสั่ง INSERT ALL รายละเอียดของพนักงานที่ job_id ไม่ใช่ 'ตัวแทนขาย'
84. What will be the outcome of the below query? (Consider 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)
INSERT INTO employees (employee_id , salary) VALUES (&employee_id , &salary);
COMMIT;
- ข้อผิดพลาดทางไวยากรณ์เนื่องจากไม่สามารถใช้ตัวแปรทดแทนในคำสั่ง DML
- ผู้ใช้จะได้รับแจ้งให้ป้อนรหัสพนักงานและเงินเดือน แต่ตัวแปรทดแทนไม่สามารถแทรกข้อมูลในตารางได้
- ผู้ใช้จะได้รับแจ้งให้ป้อนรหัสพนักงานจากนั้นเงินเดือนและบันทึกจะถูกสร้างสำเร็จในตาราง EMPLOYEES
- ไม่มีข้อใดข้างต้น
Answer: C. ตัวแปรการแทนที่ทำงานได้ดีกับคำสั่ง DML
85. Evaluate the following SQL statements that are executed in a user session in the specified order:
CREATE SEQUENCE id_seq;
SELECT id_seq.nextval
FROM dual;
INSERT INTO employees (employee_id ,first_name,job_id )
VALUES (ord_seq.CURRVAL, 'Steyn','Trainee');
UPDATE employees
SET employee_id = id_seq.NEXTVAL
WHERE first_name = 'Steyn'
AND job_id ='Trainee';
ผลลัพธ์ของข้อความข้างต้นจะเป็นอย่างไร?
- คำสั่ง CREATE SEQUENCE จะทำให้เกิดข้อผิดพลาดเนื่องจากไม่ได้ระบุค่าต่ำสุดและสูงสุดสำหรับลำดับ
- คำสั่งทั้งหมดจะดำเนินการสำเร็จและคอลัมน์ staff_id จะมีค่า 2 สำหรับพนักงาน STEYN
- คำสั่ง CREATE SEQUENCE จะไม่ทำงานเนื่องจากไม่ได้ระบุค่าเริ่มต้นของลำดับและค่าส่วนเพิ่ม
- คำสั่งทั้งหมดจะดำเนินการสำเร็จและคอลัมน์ staff_id จะมีค่า 20 สำหรับพนักงาน STEYN เนื่องจากค่า CACHE เริ่มต้นคือ 20
Answer: B.
86. What is the restriction on the sub-query used in the UPDATE statement?
- แบบสอบถามย่อยควรเป็นแบบสอบถามย่อยหลายแถว
- แบบสอบถามย่อยควรเป็นแบบสอบถามย่อยแถวเดียว
- ไม่มีข้อ จำกัด
- แบบสอบถามย่อยสามารถเป็นได้ทั้งแถวเดียวหรือแบบสอบถามย่อยหลายแถว
Answer: B. แบบสอบถามย่อยไม่ควรส่งคืนหลายแถวเมื่อใช้ในคำสั่ง UPDATE
Examine the given table structure and consider the query given below and answer the questions 87 and 88 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)
UPDATE employees
SET salary = (SELECT salary FROM employees WHERE employee_id =7382);
87. What will be the outcome of the above query?
- มันแสดงข้อผิดพลาด ORA ในการดำเนินการ
- เงินเดือนของพนักงานทั้งหมดจะได้รับการอัปเดตด้วยเงินเดือนเดียวกันกับพนักงาน 7382
- เงินเดือนของพนักงานทั้งหมดจะถูกอัปเดตเป็น NULL
- ไม่มีข้อใดข้างต้น
Answer: B. สามารถใช้ผลลัพธ์คิวรีเพื่ออัปเดตค่าคอลัมน์ในตารางได้
88. Suppose if the employee 7382 doesn't exist in the EMPLOYEES table. What will be the outcome of the query?
- มันแสดงข้อผิดพลาด ORA ในการดำเนินการเนื่องจากไม่สามารถอัปเดตผลลัพธ์ของแบบสอบถามเป็นคอลัมน์ได้
- เงินเดือนของพนักงานทั้งหมดจะถูกอัปเดตเป็น NULL
- ข้อยกเว้น ORA 'NO_DATA_FOUND' จะถูกเพิ่มขึ้นเนื่องจากไม่มีพนักงาน 7382 อยู่
- ไม่มีข้อใดข้างต้น
Answer: B. คำสั่ง UPDATE ไม่ได้เพิ่มข้อยกเว้นใด ๆ ยกเว้นข้อผิดพลาดทางไวยากรณ์
Examine the given table structure and consider the query given below and answer the questions 89 and 90 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)
UPDATE employees
set salary = (select salary from employees where last_name = 'Adams');
89. What will be the outcome of the query?
- มันดำเนินการสำเร็จ
- ทุกแถวของตารางมีเงินเดือนเท่ากัน
- อาจทำให้เกิดข้อผิดพลาด ORA 'TOO_MANY_ROWS' เมื่อดำเนินการ
- ไม่มีข้อใดข้างต้น
Answer: C. แบบสอบถามย่อยอาจส่งคืนมากกว่าหนึ่งแถวที่ทำให้เกิดข้อผิดพลาด
90. What changes in the above query will make sure there are no errors caused?
- ใช้ฟังก์ชันแถวเดียวเช่น MAX, MIN หรือ AVG เพื่อลดผลลัพธ์หลายแถวลงในผลลัพธ์สเกลาร์
- การเพิ่มข้อ จำกัด ของคีย์หลักในคอลัมน์ SALARY
- ไม่จำเป็นต้องเปลี่ยนแปลง
- ไม่มีข้อใดข้างต้น
Answer: A.
Examine the given table structure and consider the following query and answer the questions 91 and 92 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)
UPDATE employees
SET salary = (select max (salary) from employees where last_name = 'Adams');
91. What will be the outcome of the query given above?
- จะอัปเดตเงินเดือนของพนักงานทุกคนให้เท่ากับเงินเดือนของพนักงานชื่ออดัม
- จะอัปเดตเงินเดือนของพนักงานทุกคนเท่ากับเงินเดือนเฉลี่ยของทุกคนที่มีนามสกุลเป็น 'อดัม'
- มันจะอัปเดต 0 แถว
- มันจะอัปเดตเพียงแถวเดียว
Answer: B. ฟังก์ชันเลขคณิต MAX หรือ MIN สามารถใช้กับแบบสอบถามย่อยเพื่อรับค่าสเกลาร์และหลีกเลี่ยงข้อผิดพลาด
92. Assume that the sub-query above is replaced with the following:
SELECT distinct salary from employees where last_name = 'Adam';
ผลลัพธ์ของแบบสอบถามหลักที่ระบุไว้ข้างต้นจะเป็นอย่างไร
- มันจะดำเนินการสำเร็จโดยให้ผลลัพธ์ที่ไม่ถูกต้อง
- จะดำเนินการสำเร็จให้ผลลัพธ์ที่ถูกต้อง
- มันจะทำให้เกิดข้อผิดพลาด ORA
- ไม่มีข้อใดข้างต้น
Answer: C. มันทำให้เกิดข้อผิดพลาดเนื่องจากมีหลายคนที่มีนามสกุลเป็น 'อดัม' จะมีเงินเดือนที่แตกต่างกันมากมาย
Examine the given table structure and consider the following query and answer the questions 93 and 94 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)
UPDATE employees
SET salary = 50000;
WHERE job_id in (select job_id from job_history where department_id = 10);
93. What will the above statement do? (Choose the most appropriate answer)
- จะอัปเดตเงินเดือนทั้งหมดสำหรับพนักงานทั้งหมดเป็น 50000
- จะอัปเดตเงินเดือนทั้งหมดสำหรับพนักงานทุกคนที่อยู่ในแผนก 10
- จะอัปเดตเงินเดือนสำหรับพนักงานทุกคนที่มีรหัสงานคล้ายกับในแผนก 10
- ไม่มีข้อใดข้างต้น
Answer: C.
94. What will happen if the WHERE clause given above is replaced with the following?
WHERE job_id = (select job_id from job_history where department_id = 10);
- จะดำเนินการสำเร็จโดยมีผลลัพธ์ที่ไม่ถูกต้อง
- มันจะดำเนินการสำเร็จด้วยผลลัพธ์ที่ถูกต้อง
- มันจะทำให้เกิดข้อผิดพลาด ORA
- ไม่มีข้อใดข้างต้น
Answer: C. เครื่องหมายเท่ากับจะเพิ่มข้อผิดพลาด
Examine the given table structure and consider the following statement. Answer the questions 95 to 97 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)
DELETE FROM employees where last_name = 'A%';
COMMIT;
95. What will be the outcome of the query given above?
- ดำเนินการสำเร็จ แต่ไม่มีการลบแถว
- พนักงานทั้งหมดที่ last_name ขึ้นต้นด้วย "A" จะถูกลบ
- ข้อผิดพลาด ORA เนื่องจากคำสั่ง DELETE ไม่สามารถมีเพรดิเคต WHERE
- แถวทั้งหมดจากตารางพนักงานจะถูกลบ
Answer: A. คำสั่ง DELETE สามารถมีเพรดิเคตส่วนคำสั่ง WHERE ตามเงื่อนไขบันทึกจะถูกลบออกจากตาราง
96. Consider the following statement:
DELETE FROM employees where employee_id IS NULL and job_id = NULL;
COMMIT;
สมมติว่ามีข้อ จำกัด NOT NULL ในคอลัมน์ staff_id ผลลัพธ์ของแบบสอบถามข้างต้นจะเป็นอย่างไร
- จะเพิ่มข้อผิดพลาด ORA เนื่องจากเพรดิเคต WHERE ไม่ถูกต้อง
- จะดำเนินการสำเร็จและจะไม่มีการลบแถว
- จะเพิ่มข้อผิดพลาด ORA เนื่องจากเพรดิเคตหลายตัวไม่สามารถทำงานในคำสั่ง DELETE
- ไม่มีข้อใดข้างต้น
Answer: B. สามารถใช้เพรดิเคตหลายตัวกับคำสั่ง DML UPDATE และ DELETE
97. Consider the following query:
DELETE FROM employees where department_id = &deptID;
COMMIT;
จะเกิดอะไรขึ้นเมื่อคำสั่งดังกล่าวถูกดำเนินการ?
- มันจะเพิ่มข้อผิดพลาดเนื่องจากคำสั่ง DML ไม่สามารถใช้ตัวแปรทดแทนได้
- ระบบจะแจ้งให้ลบ ID แผนกจากผู้ใช้และลบเรกคอร์ดด้วย ID แผนกที่กำหนด
- จะแจ้งให้ใส่ ID แผนก แต่ไม่สามารถทำธุรกรรมได้
- ไม่มีข้อใดข้างต้น
Answer: B. ตัวแปรการแทนที่สามารถใช้ได้กับคำสั่ง DML
98. All parts of a transaction should complete or none of them. Which property of ACID rule complies with the given statement?
- Atomicity
- Consistency
- Isolation
- Durability
Answer: A. ACID หมายถึงคุณสมบัติพื้นฐานของธุรกรรมฐานข้อมูล: ความเป็นอะตอมความสม่ำเสมอการแยกและความทนทาน Atomicity หมายความว่าลำดับการกระทำทั้งหมดจะต้องเสร็จสมบูรณ์หรือถูกยกเลิก ความสอดคล้องหมายความว่าธุรกรรมจะนำทรัพยากรจากสถานะที่สอดคล้องกันไปสู่อีกสถานะหนึ่ง การแยกหมายความว่าผลของธุรกรรมจะมองไม่เห็นกับธุรกรรมอื่น ๆ จนกว่าจะมีการตกลงทำธุรกรรม ความทนทานหมายความว่าการเปลี่ยนแปลงที่เกิดขึ้นจากธุรกรรมที่ตกลงกันไว้นั้นเป็นไปอย่างถาวรและต้องรอดพ้นจากความล้มเหลวของระบบ
99. What does the principle of Durability in the ACID property state?
- ระบุว่าฐานข้อมูลอาจสูญเสียธุรกรรมที่เสร็จสมบูรณ์
- ระบุว่าธุรกรรมไม่สามารถดำเนินการให้เสร็จสมบูรณ์ได้
- ระบุว่าเมื่อการทำธุรกรรมเสร็จสมบูรณ์จะต้องเป็นไปไม่ได้ที่ DB จะสูญเสีย
- ไม่มีข้อใดข้างต้น
Answer: C.
100. An incomplete transaction should be invisible to all the other users. Which of the properties of the ACID state this?
- Isolation
- Consistency
- Atomicity
- Durability
Answer: A. "ฉัน" ย่อมาจาก Isolation
101. What does the principle of consistency states?
- ระบุว่าผลลัพธ์ของแบบสอบถามต้องสอดคล้องกับสถานะของฐานข้อมูลในขณะที่แบบสอบถามเริ่มต้น
- ระบุว่าธุรกรรมที่ไม่สมบูรณ์ควรจะมองไม่เห็นสำหรับผู้ใช้รายอื่นทั้งหมด
- ระบุว่าเมื่อการทำธุรกรรมเสร็จสมบูรณ์จะต้องเป็นไปไม่ได้ที่ DB จะสูญเสีย
- ไม่มีข้อใดข้างต้น
Answer: A. คุณสมบัติ "C" ในกรดหมายถึงความสม่ำเสมอ
102. What among the following best describes a Transaction?
- แทรกเพื่อ COMMIT / ROLLBACK
- อัปเดตเป็น COMMIT / ROLLBACK
- ลบเป็น COMMIT / ROLLBACK
- INSERT / UPDATE / DELETE to COMMIT / ROLLBACK
Answer: D.
103. A user named "Jonathan" inserts data in the table EMPLOYEES. When will the other users be able to see the new data?
- เมื่อโจนาธานให้สิทธิ์การเข้าถึงแก่ผู้ใช้
- เมื่อโจนาธานดำเนินการคำสั่ง ROLLBACK ในเซสชัน
- เมื่อโจนาธานดำเนินการคำสั่ง COMMIT ในเซสชันเดียวกัน
- เมื่อโจนาธานเปิดเซสชันใหม่และออก COMMIT
Answer: C. ธุรกรรมที่ใช้งานอยู่ต้องถูกผูกมัดในเซสชันเดียวกัน
104. What can be said about the nesting of transactions?
- สามารถซ้อนได้สูงสุด 2 ระดับ
- สามารถทำรังได้สูงสุด 255 ระดับ
- การซ้อนธุรกรรมเป็นไปไม่ได้
- รังทำได้เพียง 1 ระดับเท่านั้น
Answer: C.
105. Which of the following reasons will terminate a transaction?
- คำสั่ง DDL
- การออกจากไคลเอ็นต์
- ระบบล่ม
- ทั้งหมดที่กล่าวมา
Answer: D. DDL เป็นการคอมมิตอัตโนมัติและจะสิ้นสุดธุรกรรมที่กำลังดำเนินอยู่