รับข้อมูลจากคำถามหลายตาราง
1.Which of the following is not related to a Relational Database?
- Selection
- Projection
- Joining
- ไม่มีข้อใดข้างต้น
Answer: D. ตัวเลือก A, B และ C เป็นความสามารถหลักของ Oracle Relational Database
2.Which of the following methods is used for writing a query with columns from multiple tables?
- SELECT
- GROUP BY
- สั่งโดย
- JOINS
Answer: D. การเข้าร่วมใช้เพื่อเชื่อมต่อตารางหลายตารางและข้อมูลคอลัมน์โครงการจากหลายตารางใน Oracle
3.Which of the following is one of the most common methods to join multiple tables?
- เข้าร่วมแฮช
- Equijoin
- เข้าร่วมด้วยตนเอง
- เข้าร่วมข้าม
Answer: B. Equijoin เป็นหนึ่งในประเภทของการรวมซึ่งเป็นเทคนิคที่ใช้กันทั่วไปและง่ายที่สุดสำหรับการเข้าร่วมมากกว่าหนึ่งตาราง Equijoins เรียกอีกอย่างว่าการรวมแบบง่ายหรือการรวมภายใน Equijoin เกี่ยวข้องกับคีย์หลักและคีย์ต่างประเทศ
4.Which of following will be used to join rows with other tables if the column values fall in a range defined by inequality operators?
- Equijoin
- เข้าร่วมง่ายๆ
- Non-equijoin
- ไม่มีข้อใดข้างต้น
Answer: C. Equijoins ใช้ตัวดำเนินการความเท่าเทียมกันเพื่อรวมแถวส่วนที่ไม่ใช่ Equijoins ใช้ตัวดำเนินการอสมการ
5.Which of the following statements is true about Oracle joins?
- ค่า NULL จะรวมอยู่ในชุดผลลัพธ์
- ระบบจะดึงเฉพาะแถวที่มีเงื่อนไขที่ตรงกัน
- แถวทั้งหมดที่มีอยู่ในตารางใดตารางหนึ่งจะถูกดึงมา
- ไม่มีข้อใดข้างต้น
Answer: B. ค่า NULL และรายการที่แตกต่างกันในคอลัมน์การรวมทั่วไปจะไม่รวมเมื่อใช้การรวม
6.Which of the following can be used to join the rows of a table with other rows of the same table?
- Equijoin
- Non-equijoin
- การเข้าร่วมภายนอก
- Self-join
Answer: D. การเชื่อมโยงจะขึ้นอยู่กับคอลัมน์ที่มีความสัมพันธ์แบบลอจิคัลและโดยปกติจะมีลำดับชั้นซึ่งกันและกัน
7.What is true about a cartesian join of two tables in Oracle DB?
- ต้องหลีกเลี่ยงเนื่องจากมีค่าใช้จ่ายสูงและไม่เหมาะสม
- เกิดขึ้นเมื่อทุกแถวจากตารางหนึ่งรวมกับแถวทั้งหมดในตารางที่สอง
- ทั้งเอและบี
- ไม่มีข้อใดข้างต้น
Answer: B. การเข้าร่วมคาร์ทีเซียนมักเป็นผลมาจากเงื่อนไขการเข้าร่วมที่ขาดหายไปหรือไม่เพียงพอมันเป็นเพียงผลคูณระหว่างสองตาราง
8.Which of the following is one of the basic types of joins in Oracle DB ?
- การเข้าร่วมภายนอก
- Self-join
- Equi-join
- ทั้งหมดที่กล่าวมา
Answer: C. Equi-join และ non-equijoin เป็นการรวมพื้นฐานสองประเภทใน Oracle DB
9.What is the main condition for using joins between a source table and a target table in Oracle DB for getting a non-cartesian product result?
- ไม่มีข้อแม้
- อย่างน้อยหนึ่งคอลัมน์ในทั้งสองตารางควรเป็นคอลัมน์ร่วมกัน
- ชื่อของคอลัมน์ในตารางการรวมทั้งสองควรเหมือนกันสำหรับการใช้การรวม
- ไม่มีข้อใดข้างต้น
Answer: B. ตารางจะต้องเชื่อมต่อผ่านคอลัมน์ทั่วไปที่เกี่ยวข้องกับสองเอนทิตีตารางที่รวมอยู่ในคอลัมน์ทั่วไปจะสร้างผลิตภัณฑ์ที่ไม่ใช่คาร์ทีเซียน
10. Which of the following can be used to fetch rows from multiple tables in a single SQL query?
- SELECT
- WHERE
- FROM
- Equi-joins
Answer: D. Equijoins เรียกอีกอย่างว่าการรวมแบบง่ายหรือการรวมภายใน Equijoin เกี่ยวข้องกับคีย์หลักและคีย์ต่างประเทศ
11.What is true about the source table and the target table in terms of Oracle Joins?
- ต้องมีชื่อเดียวกันอย่างน้อยหนึ่งคอลัมน์
- คอลัมน์ทั้งหมดควรมีชื่อเดียวกันและประเภทข้อมูลเดียวกันสำหรับการรวมสองตาราง
- ไม่สามารถสลับแหล่งที่มาและตารางเป้าหมายได้และเป็นตำแหน่งเฉพาะ
- ไม่มีข้อใดข้างต้น
Answer: D. แหล่งที่มาและตารางเป้าหมายสามารถสลับกันได้และไม่ได้รับการแก้ไขที่ตำแหน่งผลลัพธ์อาจแตกต่างหรือคงเดิมทั้งนี้ขึ้นอยู่กับประเภทของการรวมที่ใช้ในแบบสอบถาม
12.What is true about Natural joins in Oracle DB?
- ชื่อคอลัมน์ของแหล่งที่มาและตารางเป้าหมายควรเหมือนกัน
- หากชื่อคอลัมน์ของซอร์สและตารางเป้าหมายไม่เหมือนกัน Oracle จะดำเนินการตามความจำเป็นโดยปริยาย
- NATURAL JOINS การใช้และเปิดคือคีย์เวิร์ดที่เกี่ยวข้องกับ Natural Joins
- ทั้งหมดที่กล่าวมา
Answer: C. คีย์เวิร์ด NATURAL JOIN สั่งให้ Oracle ระบุคอลัมน์ที่มีชื่อเหมือนกันระหว่างตารางต้นทางและตารางเป้าหมาย การรวมแบบธรรมชาติใช้คอลัมน์ทั้งหมดที่มีชื่อและชนิดข้อมูลที่ตรงกันเพื่อเข้าร่วมตาราง USING clause สามารถใช้เพื่อระบุเฉพาะคอลัมน์ที่ควรใช้สำหรับ equijoin
13.Assume the tables EMPLOYEES and DEPARTMENT have to be joined using NATURAL JOIN. What is the difference between the following two queries which follow? (Consider the table structures 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)
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)
SELECT department_id
FROM employees NATURAL JOIN department
WHERE first_name = 'John'
AND last_name = 'Bacon';
SELECT department_id
FROM department NATURAL JOIN employees
WHERE first_name = 'John'
AND last_name = 'Bacon';
- ไม่มีความแตกต่างกัน
- ผลลัพธ์แตกต่างกันในทั้งสองกรณี
- แบบสอบถามทั้งสองจะให้ข้อผิดพลาด ORA ในการดำเนินการ
- ไม่มีข้อใดข้างต้น
Answer: B. สามารถสลับตารางต้นทางและเป้าหมายได้ในขณะที่ใช้ NATURAL JOIN ซึ่งให้ชุดผลลัพธ์ที่แตกต่างกันโดยสัมพันธ์กัน
14.Which of the following options is true regarding the NATURAL JOIN in Oracle DB?
- ในขณะที่ใช้ NATURAL JOIN การกล่าวถึงชื่อของคอลัมน์ทั้งหมดจากทั้งสองตารางเป็นข้อบังคับ
- NATURAL JOIN สามารถใช้ได้ก็ต่อเมื่อชื่อของคอลัมน์ทั้งหมดของทั้งสองตารางเหมือนกัน
- การรวมใน NATURAL JOIN จะเกิดขึ้นก็ต่อเมื่อผู้ใช้ระบุคอลัมน์ของแหล่งที่มาและตารางเป้าหมาย
- ไม่จำเป็นต้องพูดถึงคอลัมน์เมื่อใช้ NATURAL JOINS
Answer: D. มีการรวมคอลัมน์โดยนัยจากต้นทางและตารางเป้าหมายเมื่อใช้ NATURAL JOIN NATURAL JOIN คือการดำเนินการ JOIN ที่สร้างคำสั่งการรวมโดยปริยายสำหรับคุณโดยยึดตามคอลัมน์ทั่วไปในสองตารางที่จะเข้าร่วมคอลัมน์ทั่วไปคือคอลัมน์ที่มีชื่อเดียวกันในทั้งสองตาราง
15. What is the difference between a NATURAL JOIN and a join with JOIN..ON?
- ไม่มีความแตกต่างระหว่างทั้งสอง
- JOIN..ON รวมตารางต้นทางและเป้าหมายบนคอลัมน์เฉพาะที่มีชื่อเดียวกัน
- NATURAL JOIN รวมคอลัมน์ที่ตรงกันทั้งหมดจากตารางต้นทางและตารางเป้าหมายโดยปริยาย
- ไม่มีข้อใดข้างต้น
Answer: B, C. เงื่อนไขการเข้าร่วมสำหรับการรวมตามธรรมชาตินั้นโดยพื้นฐานแล้วจะเป็น Equijoin ของคอลัมน์ทั้งหมดที่มีชื่อเดียวกันใช้คำสั่ง ON เพื่อระบุเงื่อนไขตามอำเภอใจหรือระบุคอลัมน์ที่จะเข้าร่วมเงื่อนไขการเข้าร่วมจะแยกออกจากเงื่อนไขการค้นหาอื่น ๆ คำสั่ง ON ทำให้รหัสเข้าใจง่าย
16.What is true about the JOIN..ON clause in Oracle DB?
- ไม่ขึ้นอยู่กับคอลัมน์ในตารางต้นทางและตารางเป้าหมายที่มีชื่อเหมือนกัน
- เฉพาะคอลัมน์จากซอร์สและตารางเป้าหมายที่มีชื่อเหมือนกันเท่านั้นที่สามารถใช้ได้กับประโยคนี้
- เป็นรูปแบบของ NATURAL JOIN
- ทั้งหมดที่กล่าวมา
Answer: A, C. เงื่อนไขการเข้าร่วมสำหรับการรวมตามธรรมชาตินั้นโดยพื้นฐานแล้วจะเป็น Equijoin ของคอลัมน์ทั้งหมดที่มีชื่อเดียวกัน ใช้คำสั่ง ON เพื่อระบุเงื่อนไขตามอำเภอใจหรือระบุคอลัมน์ที่จะเข้าร่วม เงื่อนไขการรวมถูกแยกออกจากเงื่อนไขการค้นหาอื่น ๆ คำสั่ง ON ทำให้รหัสเข้าใจง่าย
17. The database designer has named the key (unique) columns from two tables differently.While joining these tables, which among the following will be the best practice?
- JOIN..ON
- ทั้ง NATURAL JOIN หรือ JOIN ... ON clauses
- ทั้งเอและบี
- ไม่มีข้อใดข้างต้น
Answer: A. การใช้ NATURAL JOINS ในกรณีนี้อาจให้ผลลัพธ์ที่ไม่คาดคิดเนื่องจากมีการค้นหาคอลัมน์ที่มีชื่อเหมือนกันโดยปริยายซึ่งในกรณีนี้จะไม่มีอยู่
18.What of the following can be used to fetch non-matching rows along with the matching rows between a source and a target table in Oracle DB?
- EQUI-JOIN
- SELF-JOIN
- เข้าร่วมกับธรรมชาติ
- OUTER-JOIN
Answer: D. การรวมภายนอกถูกสร้างขึ้นเมื่อจำเป็นต้องรวมเรกคอร์ดในผลลัพธ์โดยไม่ต้องมีเรกคอร์ดที่สอดคล้องกันในตารางการรวม เร็กคอร์ดเหล่านี้จะจับคู่กับเร็กคอร์ด NULL เพื่อให้รวมอยู่ในเอาต์พุต
19. What are Cartesian Joins also known as in Oracle DB?
- Equi-join
- Anti-join
- Cross-Join
- ไม่มีข้อใดข้างต้น
Answer: C. การรวมคาร์ทีเซียนระหว่างสองตารางจะส่งคืนการรวมแถวที่เป็นไปได้ทั้งหมดจากตาราง การรวมคาร์ทีเซียนสามารถสร้างได้โดยไม่รวมการดำเนินการเข้าร่วมในแบบสอบถามหรือโดยใช้การเข้าร่วมแบบข้าม
20.What will be the result of a NATURAL JOIN between two tables EMPLOYEES and DEPARTMENT as given in the query below? (Consider the table structures 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)
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)
SELECT * FROM employees NATURAL JOIN department;
- คอลัมน์ทั่วไป DEPARTMENT_ID ที่มีชื่อเหมือนกันในทั้งสองตารางจะปรากฏขึ้นสองครั้งในชุดผลลัพธ์
- คอลัมน์ทั้งหมดที่มีชื่อเหมือนกันที่รวมเข้ากับ NATURAL JOIN จะปรากฏสองครั้งในชุดผลลัพธ์
- ชุดผลลัพธ์จะมีคอลัมน์เดียวสำหรับแต่ละคู่ของคอลัมน์ที่มีชื่อเหมือนกันจากทั้งสองตาราง
- ไม่มีข้อใดข้างต้น
Answer: C. คำหลัก NATURAL JOIN ไม่จำเป็นต้องมีเงื่อนไขในการสร้างความสัมพันธ์ระหว่างสองตาราง อย่างไรก็ตามต้องมีคอลัมน์ทั่วไป ไม่สามารถใช้ตัวระบุคอลัมน์กับคีย์เวิร์ด NATURAL JOIN
21.What is the difference between a NATURAL JOIN and an EQUI-JOIN in Oracle DB?
- ไม่มีความแตกต่างกัน
- พวกเขาเหมือนกันเมื่อเทียบกับชุดผลลัพธ์ที่ได้รับจากทั้งสองอย่าง
- ทั้งเอและบี
- ไม่มีข้อใดข้างต้น
Answer: D. NATURAL JOIN รวมคอลัมน์ทั้งหมดที่มีชื่อเหมือนกันในขณะที่ EQUI-JOIN ต้องการคอลัมน์ที่กล่าวถึงอย่างชัดเจนในแบบสอบถาม SQL
22.What is an INNER JOIN in Oracle DB?
- การรวมให้บันทึกการจับคู่ระหว่างสองตารางเรียกว่า INNER JOIN
- การรวมภายในสามารถใช้ตัวดำเนินการเช่น <,>, <>
- ทั้งเอและบี
- ไม่มีข้อใดข้างต้น
Answer: C. การรวมสามารถเป็นการรวมภายในซึ่งระเบียนเดียวที่ส่งคืนจะมีระเบียนที่ตรงกันในตารางทั้งหมดหรือการรวมภายนอกซึ่งสามารถส่งคืนระเบียนได้ไม่ว่าจะมีบันทึกที่ตรงกันในการรวมหรือไม่ก็ตาม
23.What is the difference between a INNER JOIN and an EQUI-JOIN in Oracle DB?
- มันเหมือนกันในแง่ของไวยากรณ์และชุดผลลัพธ์ที่ได้รับ
- INNER JOIN เป็นส่วนย่อยของ EQUI-JOIN
- INNER JOIN สามารถใช้ตัวดำเนินการเช่น <,>, <> ร่วมกับ "=" ในขณะที่ EQUI-JOIN ใช้ตัวดำเนินการ "=" เท่านั้น
- ทั้งหมดที่กล่าวมา
Answer: C. EQUI-JOIN เป็นประเภทของตัวดำเนินการ INNER JOIN ที่มีตัวดำเนินการ "=" ในเงื่อนไขการเข้าร่วมในขณะที่ INNER JOIN สามารถมีได้ทั้งตัวดำเนินการที่เท่าเทียมกันและตัวดำเนินการที่ไม่เท่ากัน
24.What is true about NATURAL JOINS in terms of ANSI SQL: 1999 syntaxes in Oracle DB?
- ใช้ตัวดำเนินการความเท่าเทียมกัน (=)
- พวกเขาดึงผลลัพธ์ที่แตกต่างกันเมื่อเทียบกับไวยากรณ์แบบดั้งเดิม
- ไวยากรณ์ ANSI SQL ใช้คำเช่น NATURAL JOIN ในการสืบค้น SQL
- ไม่มีข้อใดข้างต้น
Answer: C. ไวยากรณ์ ANSI SQL แตกต่างจากวิธีการใช้ (=) แบบดั้งเดิมในรูปแบบดั้งเดิม มีคีย์เวิร์ดเช่น NATURAL JOIN เป็นต้นในไวยากรณ์ ANSI SQL เพื่อแยกแยะการรวมที่ใช้
25.What of the following is true with respect to the query given below? (Consider the table structures 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)
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)
SELECT first_name, salary
FROM employees e, departments d
WHERE e.department_id (+) = d.department_id ;
- มีการรวมภายนอกระหว่าง department_id จากทั้งสองตารางซึ่งเทียบเท่ากับการรวมด้านนอกด้านขวาใน ANSI SQL
- มีการรวมภายนอกระหว่าง department_id จากทั้งสองตารางซึ่งเทียบเท่ากับการรวมด้านนอกซ้ายใน ANSI SQL
- จะดึงข้อมูลทั้งหมดของ department_id จากตารางพนักงานว่าตรงกันหรือไม่
- จะดึงข้อมูลทั้งหมดของ department_id จากตารางแผนกว่าตรงกันหรือไม่
Answer: A, D. เงื่อนไข e.department_id (+) = d.department_id หมายความว่าจะทำการเข้าร่วมด้านนอกขวาและ department_id ทั้งหมดจากตารางแผนกจะปรากฏขึ้นว่าตรงกันหรือไม่
26.Which of the following syntax models is used in extensively in the software systems worldwide?
- ANSI SQL: 1999
- ทั้งไวยากรณ์ Oracle แบบดั้งเดิมและไวยากรณ์ ANSI SQL: 1999
- ไวยากรณ์ Oracle แบบดั้งเดิม
- ตัวเลือกทั้งหมด
Answer: C. ไวยากรณ์ ANSI SQL: 1999 แม้ว่าจะไม่ได้ใช้มากเท่ากับไวยากรณ์ Oracle แบบดั้งเดิม แต่ก็ยังคงเป็นหนึ่งในไวยากรณ์ที่อาจใช้ใน Oracle SQL
27.What of the following is true regarding the Cartesian product in Oracle DB?
- ถ้า 'N' เป็นจำนวนตารางที่ไม่เข้าร่วมถ้าไม่มี ของการรวมคือ N-1 ไม่ได้ดำเนินการผลิตภัณฑ์คาร์ทีเซียน
- ถ้า 'N' เป็นจำนวนตารางที่ไม่เข้าร่วมถ้าไม่มี ของการรวมคือ N ผลิตภัณฑ์คาร์ทีเซียนจะดำเนินการ
- ถ้า 'N' เป็นจำนวนตารางที่ไม่เข้าร่วมถ้าไม่มี ของการรวมคือ N + 1 ผลิตภัณฑ์คาร์ทีเซียนจะดำเนินการ
- ถ้า 'N' เป็นจำนวนตารางที่ไม่เข้าร่วมถ้าไม่มี จำนวนการรวมคือ N-1 หรือน้อยกว่าผลิตภัณฑ์คาร์ทีเซียนจะดำเนินการ
Answer: A. การรวมคาร์ทีเซียนระหว่างสองตารางจะส่งคืนการรวมแถวที่เป็นไปได้ทั้งหมดจากตาราง การรวมคาร์ทีเซียนสามารถสร้างได้โดยไม่รวมการดำเนินการเข้าร่วมในแบบสอบถามหรือโดยใช้การเข้าร่วมแบบข้าม แบบสอบถามต้องมีเงื่อนไขการรวมอย่างน้อย (N-1) เพื่อป้องกันไม่ให้ผลิตภัณฑ์คาร์ทีเซียนโดยที่ N คือจำนวนตารางในแบบสอบถาม
28.What is the reason of error in the following SQL query? (Consider the table structures 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)
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)
SELECT first_name, last_name
FROM employees, departments
WHERE department_id (+) = department_id ;
- ไม่มีนามแฝงที่ใช้สำหรับตาราง
- คำว่า RIGHT OUTER JOIN ไม่ได้ใช้ที่นี่ดังนั้นจึงทำให้เกิดข้อผิดพลาด
- (+) ควรอยู่ทางด้านขวาของเงื่อนไขความเท่าเทียมกันไม่ใช่ทางด้านซ้าย
- ควรใช้นามแฝงตารางกับ department_id ในเงื่อนไขเพื่อลบการตั้งชื่อที่ไม่ชัดเจน
Answer: D. หากไม่มีนามแฝงตาราง Oracle จะไม่สามารถหาที่มาของคอลัมน์ที่ถูกรวมเข้าด้วยกันและด้วยเหตุนี้จึงเกิดข้อผิดพลาด Ambiguity ในการดำเนินการ
29.Which of the following is used to avoid the ambiguous column problem in Oracle DB?
- ;
- ,
- .
- /
Answer: C. ไวยากรณ์สำหรับการลบปัญหาคอลัมน์ Ambiguous คือ table_alias.column_name
30.Which of the following is the most appropriate about the following query? (Consider the table structures 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)
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)
SELECT employee_id , first_name, last_name
FROM employees e right outer join department d
On e.department_id = d.department_id ;
- จะให้รายละเอียดของพนักงานที่ไม่ได้อยู่ในแผนกใด ๆ
- จะให้รายละเอียดของแผนกที่ไม่มีพนักงานเลย
- ให้รายละเอียดของทุกแผนกโดยไม่คำนึงว่าพวกเขามีพนักงานหรือไม่
- ให้รายละเอียดของพนักงานที่ได้รับการว่าจ้างใน บริษัท 'ABC' โดยไม่คำนึงถึงแผนก
Answer: C. ด้วยวิธีการ JOIN สำหรับการรวมภายนอกคุณสามารถเพิ่มคีย์เวิร์ด LEFT, RIGHT หรือ FULL ได้ การรวมภายนอกด้านซ้ายจะรวมระเบียนทั้งหมดจากตารางที่แสดงรายการทางด้านซ้ายของการรวมแม้ว่าจะไม่พบข้อมูลที่ตรงกันกับตารางอื่นในการดำเนินการรวม การรวมภายนอกแบบเต็มจะรวมเรกคอร์ดทั้งหมดจากทั้งสองตารางแม้ว่าจะไม่พบเรกคอร์ดที่ตรงกันในตารางอื่นก็ตาม
31.What will be the outcome of the following query? (Consider the table structures 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)
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)
SELECT *
FROM employees e, department d
WHERE a.department_id = b.department_id ;
- มันจะให้ค่าที่ตรงกันทั้งหมดจากทั้งสองตารางที่มี department_id เหมือนกัน
- จะให้คอลัมน์ทั้งหมดจากพนักงานในตารางและมีเพียง 100 แถวแรกจากตารางแผนก
- จะทำให้เกิดข้อผิดพลาด ORA: ตัวระบุ "b.department_id" ไม่ถูกต้อง
- ไม่มีตัวเลือกข้างต้น
Answer: C. นามแฝงเดียวกันควรอยู่ในส่วนคำสั่ง WHERE ตามที่ประกาศไว้ในส่วนคำสั่ง FROM
32.Which of the following is true regarding the USING and ON clauses in table joins? (Choose more than one options if applicable)
- คำสั่ง ON สามารถใช้เพื่อรวมตารางในคอลัมน์ที่มีชนิดข้อมูลเดียวกัน แต่ไม่จำเป็นต้องเป็นชื่อเดียวกัน
- คำสั่ง USING และ ON ใช้เฉพาะกับ equijoins และ non-equijoins
- สามารถใช้เงื่อนไขกับข้อ ON ได้ไม่เกินหนึ่งเงื่อนไข
- คำสั่ง WHERE สามารถเขียนได้หลังประโยค USING..ON เพื่อใช้เงื่อนไขเพิ่มเติม
Answer: A, D. แนวทาง JOIN ... USING คล้ายกับวิธี NATURAL JOIN ยกเว้นคอลัมน์ทั่วไปจะระบุไว้ในประโยค USING ไม่สามารถรวมเงื่อนไขในประโยค USING เพื่อระบุว่าตารางเกี่ยวข้องกันอย่างไร นอกจากนี้ไม่สามารถใช้ตัวระบุคอลัมน์สำหรับคอลัมน์ทั่วไปที่ระบุในคำสั่ง USING วิธี JOIN ... ON จะรวมตารางตามเงื่อนไขที่ระบุ คีย์เวิร์ด JOIN ในส่วนคำสั่ง FROM ระบุตารางที่จะเข้าร่วมและส่วนคำสั่ง ON ระบุว่าตารางทั้งสองเกี่ยวข้องกันอย่างไร ต้องใช้แนวทางนี้หากตารางที่เข้าร่วมไม่มีคอลัมน์ทั่วไปที่มีชื่อเดียวกันในแต่ละตาราง
33.How many tables can be joined by using the JOINS in Oracle DB?
- 1
- 2
- 255
- ไม่มีขีด จำกัด
Answer: D. ขณะนี้ไม่มีการ จำกัด จำนวนโต๊ะที่เข้าร่วมในการเข้าร่วม
34. What is true when multiple joins are used in an SQL statement?
- การรวมจะถูกประเมินจากซ้ายไปขวา
- การรวมจะถูกประเมินจากขวาไปซ้าย
- ไม่มีความสำคัญในกระบวนการประเมินการรวม
- ไม่มีข้อใดข้างต้น
Answer: A. เมื่อมีการรวมหลายรายการในคำสั่งจะมีการประเมินจากซ้ายไปขวา
35.What is true with respect to the following query? (Consider the table structures 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)
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 bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT bonus, first_name, department_id
FROM bonus b NATURAL JOIN employees e NATURAL JOIN department d;
- การใช้ NATURAL JOIN เพื่อเข้าร่วมหลายตารางเป็นตัวเลือกที่ดีกว่าและให้ผลลัพธ์ที่แม่นยำ
- ความน่าจะเป็นของข้อผิดพลาดจะน้อยลงมากเมื่อใช้ NATURAL JOIN เพื่อเข้าร่วมหลายตาราง
- ประโยค USING..JOIN..ON ให้ผลลัพธ์ที่แม่นยำกว่า NATURAL JOIN เมื่อเข้าร่วมหลายตาราง
- Oracle รวมตารางหลายตารางโดยปริยายเมื่อใช้ NATURAL JOIN ดังนั้นจึงเป็นแนวทางปฏิบัติที่ดีในการใช้ NATURAL JOINS
Answer: C. การใช้ NATURAL JOINS สามารถสร้างผลิตภัณฑ์คาร์ทีเซียนของแถวและยังมีข้อผิดพลาดได้ง่ายกับชุดผลลัพธ์ที่ไม่สามารถพึ่งพาได้
36.What is true about the clauses JOIN..ON in Oracle DB?
- ไม่น่าเชื่อถือมากนักเมื่อเทียบกับ NATURAL JOINS เมื่อเข้าร่วมหลายตาราง
- ส่วนคำสั่ง JOIN..ON นั้นคล้ายกับคำสั่ง WHERE ซึ่ง จำกัด แถวด้วยเงื่อนไข
- คำสั่ง WHERE เพิ่มเติมเป็นข้อบังคับเมื่อใช้คำสั่ง JOIN..ON
- ไม่มีข้อใดข้างต้น
Answer: B. แนวทาง JOIN .... ON จะรวมตารางตามเงื่อนไขที่ระบุ คีย์เวิร์ด JOIN ในส่วนคำสั่ง FROM ระบุตารางที่จะเข้าร่วมและส่วนคำสั่ง ON ระบุว่าตารางทั้งสองเกี่ยวข้องกันอย่างไร ต้องใช้แนวทางนี้หากตารางที่เข้าร่วมไม่มีคอลัมน์ทั่วไปที่มีชื่อเดียวกันในแต่ละตาราง
Examine the table structures as given. Answer the questions 37 and 38 that follow the query given below:
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)
SELECT e.salary, d.department_id
FROM employees e JOIN department d
On (e.department_id = d.department_id and e.last_name = 'Brandon');
37.What is true with respect to the query given above?
- มันให้ข้อผิดพลาด ORA เนื่องจากไม่มีส่วนคำสั่ง WHERE ที่จำเป็น
- ส่วนคำสั่ง JOIN..ON ไม่สามารถมีได้มากกว่าหนึ่งเงื่อนไข
- แบบสอบถามละเว้นเงื่อนไขสุดท้ายและดำเนินการโดยไม่มีข้อผิดพลาด ORA
- ส่วนคำสั่ง JOIN..ON สามารถเขียนในรูปแบบที่ให้ไว้ด้านบนเพื่อวางเงื่อนไขเพิ่มเติม
Answer: D. คุณสามารถละเว้นคำสั่ง WHERE และเงื่อนไขที่เกี่ยวข้องได้ในส่วนคำสั่ง JOIN..ON ดังที่แสดงในแบบสอบถามที่กำหนด
38.With respect to the given query, if the JOIN used is replaced with NATURAL JOIN, it throws an error. What is the reason for this error?
- เมื่อใช้ NATURAL JOIN คำสั่ง WHERE จะเป็นข้อบังคับโดยละเว้นซึ่งทำให้เกิดข้อผิดพลาด
- คำสั่ง ON ควรถูกแทนที่ด้วย USING clause
- คำว่า NATURAL, JOIN และ USING เป็นคำที่ใช้ร่วมกันโดยเฉพาะในบริบทของข้อเข้าร่วมเดียวกัน
- ข้อความค้นหาไม่สามารถรวมส่วนคำสั่ง NATURAL JOIN และ ON (หรือ USING) ในขณะที่เข้าร่วม
Answer: C, D.
39.What is true about Non-equijoins in Oracle DB?
- พวกเขาเข้าร่วมตามคีย์เวิร์ด NON-EQUI JOIN
- ใช้โดยใช้คำสั่ง JOIN..ON ที่มีเครื่องหมาย "="
- ผลลัพธ์จะได้รับเมื่อผลลัพธ์ของความไม่เท่าเทียมกันที่กล่าวถึงประเมินเป็นจริง
- ไม่มีข้อใดข้างต้น
Answer: C. การรวมแบบ non-equi ใช้กับอนุประโยค JOIN..ON แต่ใช้ตัวดำเนินการอสมการ
Examine the structures of the tables EMPLOYEES and DEPARTMENTS as given and answer the questions 40 and 41 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)
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)
40.What will be the outcome of the following query in Oracle DB?
SELECT e.first_name, e.last_name, e.employee_id
FROM employees e JOIN department d
ON (e.salary BETWEEN 1000 AND 10000);
- จะทำให้เกิดข้อผิดพลาด ORA เนื่องจากเงื่อนไขในส่วนคำสั่ง ON ไม่ถูกต้อง
- จะทำให้เกิดข้อผิดพลาด ORA เนื่องจากข้อผิดพลาดทางไวยากรณ์เนื่องจากไม่มีเครื่องหมาย Equality "=" ในส่วนคำสั่ง ON
- จะดำเนินการสำเร็จและแจ้งชื่อนามสกุลและรหัสพนักงานของพนักงานตามเงื่อนไขที่ระบุไว้
- การรวมที่ไม่ใช่ Equi สามารถใช้เพื่อแสดงความเท่าเทียมกันเท่านั้นและไม่ใช่ช่วง
Answer: C.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- ผลลัพธ์ของการดำเนินการจับคู่อสมการเป็นจริง
- ผลลัพธ์ของการดำเนินการจับคู่อสมการคือ 0
- ผลลัพธ์ของการดำเนินการจับคู่อสมการคือ 1
- ผลลัพธ์ของการดำเนินการจับคู่อสมการเป็นเท็จ
Answer: A. การรวมความเท่าเทียมจะถูกสร้างขึ้นเมื่อข้อมูลการรวมระเบียนจากตารางสองตารางที่ต่างกันเป็นการจับคู่แบบตรงทั้งหมด (นั่นคือเงื่อนไขความเท่าเทียมกันจะสร้างความสัมพันธ์) วิธีการดั้งเดิมใช้เครื่องหมายเท่ากับเป็นตัวดำเนินการเปรียบเทียบในส่วนคำสั่ง WHERE วิธีการเข้าร่วมสามารถใช้ NATURAL JOIN, JOIN ... USING หรือ JOIN ... ON คีย์เวิร์ด
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- ผลลัพธ์ของการดำเนินการจับคู่อสมการเป็นจริง
- ผลลัพธ์ของการดำเนินการจับคู่อสมการคือ 0
- ผลลัพธ์ของการดำเนินการจับคู่อสมการคือ 1
- ผลลัพธ์ของการดำเนินการจับคู่อสมการเป็นเท็จ
Answer: A. การรวมความเท่าเทียมจะถูกสร้างขึ้นเมื่อข้อมูลการรวมระเบียนจากตารางสองตารางที่ต่างกันเป็นการจับคู่แบบตรงทั้งหมด (นั่นคือเงื่อนไขความเท่าเทียมกันจะสร้างความสัมพันธ์) วิธีการดั้งเดิมใช้เครื่องหมายเท่ากับเป็นตัวดำเนินการเปรียบเทียบในส่วนคำสั่ง WHERE วิธีการเข้าร่วมสามารถใช้ NATURAL JOIN, JOIN ... USING หรือ JOIN ... ON คีย์เวิร์ด
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- ผลลัพธ์ของการดำเนินการจับคู่อสมการเป็นจริง
- ผลลัพธ์ของการดำเนินการจับคู่อสมการคือ 0
- ผลลัพธ์ของการดำเนินการจับคู่อสมการคือ 1
- ผลลัพธ์ของการดำเนินการจับคู่อสมการเป็นเท็จ
Answer: A. การรวมความเท่าเทียมจะถูกสร้างขึ้นเมื่อข้อมูลการรวมระเบียนจากตารางสองตารางที่ต่างกันเป็นการจับคู่แบบตรงทั้งหมด (นั่นคือเงื่อนไขความเท่าเทียมกันจะสร้างความสัมพันธ์) วิธีการดั้งเดิมใช้เครื่องหมายเท่ากับเป็นตัวดำเนินการเปรียบเทียบในส่วนคำสั่ง WHERE วิธีการเข้าร่วมสามารถใช้ NATURAL JOIN, JOIN ... USING หรือ JOIN ... ON คีย์เวิร์ด
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- ผลลัพธ์ของการดำเนินการจับคู่อสมการเป็นจริง
- ผลลัพธ์ของการดำเนินการจับคู่อสมการคือ 0
- ผลลัพธ์ของการดำเนินการจับคู่อสมการคือ 1
- ผลลัพธ์ของการดำเนินการจับคู่อสมการเป็นเท็จ
Answer: A. การรวมความเท่าเทียมจะถูกสร้างขึ้นเมื่อข้อมูลการรวมระเบียนจากตารางสองตารางที่ต่างกันเป็นการจับคู่แบบตรงทั้งหมด (นั่นคือเงื่อนไขความเท่าเทียมกันจะสร้างความสัมพันธ์) วิธีการดั้งเดิมใช้เครื่องหมายเท่ากับเป็นตัวดำเนินการเปรียบเทียบในส่วนคำสั่ง WHERE วิธีการเข้าร่วมสามารถใช้ NATURAL JOIN, JOIN ... USING หรือ JOIN ... ON คีย์เวิร์ด
43.What is true regarding a Self-Join in Oracle DB?
- การเข้าร่วมต้องมีเพียงสองตารางเท่านั้น
- คอลัมน์ในชุดผลลัพธ์ได้มาจากสองตาราง แต่จะแสดงในตารางเดียว
- ตามแนวคิดแล้วตารางต้นทางจะทำซ้ำตัวเองเพื่อสร้างตารางเป้าหมาย (Oracle ไม่ทำซ้ำตาราง)
- ทั้งหมดที่กล่าวมา
Answer: C. การรวมตัวเองจะใช้เมื่อต้องรวมตารางเข้ากับตัวเองเพื่อดึงข้อมูลที่คุณต้องการ นามแฝงของตารางจำเป็นต้องมีในส่วนคำสั่ง FROM เพื่อทำการรวมตัวเอง
44. With respect to the query and the table structure given below,answer the question.
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 *
FROM employees a join employees b
WHERE a.employee_id = b.employee_id ;
ตารางใดต่อไปนี้ที่ Oracle ถือว่าเป็นตารางต้นทางและตารางเป้าหมาย
- a คือแหล่งที่มาและ b คือเป้าหมาย
- b คือแหล่งที่มาและเป็นเป้าหมาย
- Oracle ไม่ถือว่าตารางใด ๆ เป็นแหล่งที่มาหรือเป้าหมาย
- ไม่มีข้อใดข้างต้น
Answer: A. ตารางที่เกิดขึ้นครั้งแรกของพนักงานจะถูกนำมาเป็นแหล่งที่มาและเหตุการณ์ที่ตามมาเป็น b, c และอื่น ๆ
45.In what scenarios can we use Self-Joins ideally in Oracle DB?
- เมื่อเราต้องการค้นหาระเบียนที่ซ้ำกันในตาราง
- เมื่อเราต้องการรับค่า NULL จากตาราง
- เมื่อเราต้องการแสดงคอลัมน์ของตารางสองครั้ง
- เมื่อเราต้องการแสดงลำดับชั้นของเอนทิตีที่เกี่ยวข้อง
Answer: D.
46. What is true about NATURAL JOINS in Oracle DB?
- คอลัมน์ที่รวมมีชื่อเดียวกัน แต่สามารถมีประเภทข้อมูลที่แตกต่างกันได้
- คอลัมน์ที่เข้าร่วมสามารถมีชนิดข้อมูลเดียวกัน แต่ชื่อต่างกัน
- คอลัมน์ที่เข้าร่วมควรมีชื่อที่เหมือนกันและประเภทข้อมูลเดียวกัน
- ไม่มีข้อใดข้างต้น
Answer: C. คำหลัก NATURAL JOIN ไม่จำเป็นต้องมีเงื่อนไขในการสร้างความสัมพันธ์ระหว่างสองตาราง อย่างไรก็ตามต้องมีคอลัมน์ทั่วไปไม่สามารถใช้ตัวระบุคอลัมน์กับคีย์เวิร์ด NATURAL JOIN
47.A report has to be extracted which gives the department name, department ID, department city and location ID only for departments 100 and 101. Using NATURAL JOINS, which of the following options will give the required results?
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations WHERE department_id in (100,101);
SELECT department_id , department_name ,location, city FROM locations NATURAL JOIN departments WHERE department_id BETWEEN 100 AND 101;
-
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations WHERE department_id >100 AND department_id >101;
-
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations ;
Answer: A. WHERE สามารถใช้สำหรับเงื่อนไขเพิ่มเติมหลังจากส่วนคำสั่ง NATURAL JOIN
48.In which of the following scenarios shall a USING clause or a NATURAL JOIN clause be used?
- เมื่อชื่อของคอลัมน์จากตารางเหมือนกันให้ใช้ USING clause
- เมื่อชนิดข้อมูลของคอลัมน์จากตารางเหมือนกันให้ใช้ NATURAL JOINS
- หากหลายคอลัมน์มีชื่อเหมือนกัน แต่ชนิดข้อมูลไม่ตรงกันสามารถใช้ USING ได้
- ควรใช้ NATURAL JOINS ก็ต่อเมื่อชื่อคอลัมน์และชนิดข้อมูลเหมือนกัน
Answer: C, D. NATURAL JOINS และการใช้งานเป็นสิ่งที่ไม่สามารถใช้ร่วมกันได้ควรใช้ประโยค USING เพื่อจับคู่คอลัมน์เดียวเท่านั้นเมื่อมีคอลัมน์มากกว่าหนึ่งคอลัมน์
49.Examine the table structures given. What will be the outcome of the following query? (Choose the most appropriate answer)
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 bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT e.name, b.bonus
FROM employees e
JOIN bonus b
USING (job_id)
WHERE e.job_id like 'SA%');
- ให้ชื่อและโบนัสที่พนักงานทุกคนในบาง บริษัท ได้รับ
- จะให้ชื่อและโบนัสที่พนักงานทุกคนได้รับในตำแหน่งงานเฉพาะใน บริษัท
- ดำเนินการโดยให้ชื่อทั้งหมดและโบนัสที่พนักงานทุกคนได้รับในทุกงานอย่างประสบความสำเร็จ
- มันแสดงข้อผิดพลาด ORA
Answer: D. คอลัมน์ที่ใช้ในประโยค USING ไม่ควรมี qualifier (ชื่อตารางหรือนามแฝง) ที่ใดก็ได้ในคำสั่ง SQL
50.What is true with respect to INNER JOINS and OUTER JOINS in Oracle DB?
- INNER JOIN ส่งคืนเฉพาะแถวที่ตรงกัน
- OUTER JOIN ส่งคืนเฉพาะแถวที่ไม่ตรงกัน
- OUTER JOIN ส่งคืนแถวที่ตรงกันและแถวที่ไม่ตรงกัน
- ไม่มีข้อใดข้างต้น
Answer: A, C. การรวมสามารถเป็นการรวมภายในซึ่งเร็กคอร์ดเดียวที่ส่งคืนจะมีเรกคอร์ดที่ตรงกันในทุกตารางหรือการรวมภายนอกซึ่งสามารถส่งคืนเร็กคอร์ดได้ไม่ว่าจะมีเรกคอร์ดที่ตรงกันในการรวมหรือไม่การรวมภายนอกจะถูกสร้างขึ้นเมื่อ ต้องรวมระเบียนไว้ในผลลัพธ์โดยไม่ต้องมีระเบียนที่เกี่ยวข้องในตารางการเข้าร่วม เร็กคอร์ดเหล่านี้จะจับคู่กับเร็กคอร์ด NULL เพื่อให้รวมอยู่ในเอาต์พุต
51. What is true regarding FULL OUTER JOIN in Oracle DB?
- เมื่อทั้ง LEFT OUTER JOIN และ RIGHT OUTER JOIN ปรากฏในแบบสอบถามเดียวกันเรียกว่า FULL OUTER JOIN
- การเข้าร่วมภายนอกแบบเต็มจะเหมือนกับการเข้าร่วมภายนอก
- ทั้งเอและบี
- การรวมระหว่างสองตารางที่ส่งกลับผลลัพธ์ของการรวมภายในและการเข้าร่วมด้านซ้ายและด้านขวาเรียกว่าการเข้าร่วมด้านนอกแบบเต็ม
Answer: D. การรวมภายนอกแบบเต็มจะรวมเรกคอร์ดทั้งหมดจากทั้งสองตารางแม้ว่าจะไม่พบเรกคอร์ดที่ตรงกันในตารางอื่นก็ตาม
Examine the given table structures and answer the questions 52 and 53 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)
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 bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
52.Consider the following query.
SELECT e.job_id , e.first_name, d.department_id
FROM departments D JOIN employees e JOIN BONUS b
USING (job_id );
ข้อความค้นหานี้ทำให้เกิดข้อผิดพลาด สาเหตุของข้อผิดพลาดคืออะไร?
- การเข้าร่วม .. การใช้สามารถเกิดขึ้นได้ครั้งละสองตารางเท่านั้น
- การใช้อนุประโยคในแบบสอบถามไม่มีคอลัมน์จากแผนก
- ไม่มีคำสั่ง WHERE ในแบบสอบถาม
- ไม่มีข้อใดข้างต้น
Answer: A. Table1 JOIN table2 JOIN table3 ไม่ได้รับอนุญาตหากไม่มีคำสั่ง ON ระหว่างแต่ละ JOIN
53.You need to display all the non-matching rows from the EMPLOYEES table and the non-matching rows from the DEPARTMENT table without giving a Cartesian product of rows between them. Which of the following queries will give the desired output?
SELECT * FROM employees e, department d WHERE e.department_id = d.department_id ;
SELECT * FROM employees e NATURAL JOIN department d;
SELECT * FROM employees e FULL OUTER JOIN department d ON e.department_id = d.department_id ;
SELECT * FROM employees e JOIN department d ON ( e.department_id > d.department_id ) ;
Answer: C. FULL OUTER JOIN ส่งคืนแถวที่ไม่ตรงกันจากทั้งสองตาราง การรวมภายนอกแบบเต็มจะรวมเรกคอร์ดทั้งหมดจากทั้งสองตารางแม้ว่าจะไม่พบเรกคอร์ดที่ตรงกันในตารางอื่นก็ตาม
54.Which of the following ANSI SQL: 1999 join syntax joins are supported by Oracle?
- ผลิตภัณฑ์คาร์ทีเซียน
- รวมธรรมชาติ
- เข้าร่วมภายนอกเต็มรูปแบบ
- Equijoins
Answer: D.
55.Which of the following is not a format for Outer Joins in Oracle DB?
- Right
- Left
- Centre
- Full
Answer: C. ยกเว้น 'Center' ส่วนที่เหลือ 3 ประเภทคือประเภทของรูปแบบของ Outer Joins ใน Oracle DB ด้วยวิธีการ JOIN สำหรับการรวมภายนอกคุณสามารถเพิ่มคีย์เวิร์ด LEFT, RIGHT หรือ FULL ได้
Examine the given table structures. Answer the questions 56, 57 and 58 that follow by referring to 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)
SELECT *
FROM employees e NATURAL JOIN department d;
56.You need to find the results obtained by the above query only for the departments 100 and 101. Which of the following clauses should be added / modified to the above query?
- ควรเพิ่ม ON (e.department_id = d.department_id)
- ควรเพิ่ม USING (e.department_id)
- ควรเพิ่ม e.department_id ใน (100,101) ที่ไหน
- ไม่มีข้อใดข้างต้น
Answer: C. คำสั่ง NATURAL JOIN ตรงกับคอลัมน์ที่มีชื่อเหมือนกันทั้งหมดโดยปริยาย หากต้องการเพิ่มเงื่อนไขเพิ่มเติมสามารถใช้คำสั่ง WHERE ได้
57.You need to find the results obtained by the above query for all those employees who have salaries greater than 20000. Which of the following clauses should be added / modified to the above query?
- ON (e.department_id = d.department_id) WHERE เงินเดือน> 20000;
- USING (e.department_id) WHERE เงินเดือน> 20000;
- USING (department_id) WHERE เงินเดือน> 20000;
- ที่ไหนเงินเดือน> 20000;
Answer: D.
58.If the NATURAL JOIN in the above query is replaced by only JOIN which of the following should be added / modified to the above query to give the results pertaining to Department 100?
- เปิด (department_id = 100);
- ใช้ (e.department_id = 100);
- ที่ไหน d.department_id = 100;
- เปิด (e.department_id = d.department_id และ d.department_id = 100);
Answer: D. สามารถเพิ่มการรวม equi สำหรับเงื่อนไขเพิ่มเติมหลังจากคำสั่ง ON
59.A report has to be extracted to get the Managers for all the employees in the departments 10 and 20 of a company 'ABC'. Which of the following queries will give the required results? (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)
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (employee_id );
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (b.employee_id = a.employee_id );
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (a.manager_id = b.employee_id ) WHERE department_id in (10,20);
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (a.manager_id = b.employee_id ) WHERE a.department_id in (10,20);
Answer: D. ตัวเลือก C ไม่ถูกต้องเนื่องจาก department_id ที่ไม่ใช่นามแฝงในส่วนคำสั่ง WHERE จะทำให้เกิดข้อผิดพลาด
60.Which of the following queries will give results without duplicate values between the two tables EMPLOYEES and DEPARTMENT? (Consider the table structures 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)
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)
SELECT * FROM employees e NATURAL JOIN department d;
SELECT * FROM employees e JOIN department d;
SELECT * FROM employees e NATURAL JOIN department d USING (e.department_id );
SELECT * FROM employees e FULL OUTER JOIN department d USING (department_id );
Answer: D. FULL OUTER JOIN จะให้แถวที่ตรงกันและไม่ตรงกันทั้งหมดจากทั้งสองตารางโดยไม่รวมค่าที่ซ้ำกัน
Examine the structures for the tables as given here and answer the questions 61 to 64.
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 bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
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)
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)
61.What is true about the following query? (Choose the most appropriate answer)
SELECT *
FROM bonus b, employees e
WHERE b.job_id (+) = e.job_id ;
- จะแสดงโบนัสทั้งหมดที่พนักงานทุกคนได้รับ
- จะแสดงค่า NULL สำหรับคอลัมน์โบนัสหากพนักงานคนใดคนหนึ่งไม่ได้รับโบนัสใด ๆ
- ทั้งเอและบี
- ไม่มีข้อใดข้างต้น
Answer: B. (+) อยู่บน LHS ของสมการหมายความว่าเป็นการเข้าร่วมด้านนอกที่ถูกต้องและในทางกลับกัน
62.You have to list all the departments who have no employees yet in a company named 'XYZ'. Which of the following queries will give you the required results?
SELECT department_id , department_name FROM departments d NATURAL JOIN employees e;
SELECT department_id , department_name FROM employees e JOIN departments d ON (e.department_id = d.department_id );
SELECT department_id , department_name FROM employees e LEFT OUTER JOIN departments d USING (department_id );
SELECT department_id , department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id );
Answer: D.
63.You need to extract a report which displays 'No department yet' for all those employees who are yet to be allocated to a department. Which of the following will fulfill the purpose?
SELECT nvl(department_id ,'No department yet') FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM departments d LEFT OUTER JOIN employees e ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM employees e FULL OUTER JOIN departments d ON (e.department_id = d.department_id );
Answer: C.
64.You need to extract a report which displays all the departments which have not been assigned to a city yet. Which of the following queries will give you the required output?
SELECT department_id , department_name FROM departments d NATURAL JOIN locations l;
SELECT department_id , department_name FROM departments d FULL OUTTER JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d JOIN locations l USING (location_id);
SELECT department_id , department_name FROM departments d LEFT OUTER JOIN locations l ON (d.location_id = l.location_id);
Answer: D.
65.In which two cases an OUTER JOIN should be used?
- ถ้าคอลัมน์ของตารางที่เข้าร่วมมีค่า NULL
- ถ้าตารางที่เข้าร่วมไม่มีคอลัมน์ NULL
- หากตารางที่รวมมีเฉพาะข้อมูลที่ไม่ตรงกัน
- หากตารางที่รวมมีทั้งข้อมูลที่ตรงกันและไม่ตรงกัน
Answer: A, D. การรวมภายนอกถูกสร้างขึ้นเมื่อจำเป็นต้องรวมเรกคอร์ดในผลลัพธ์โดยไม่ต้องมีเรกคอร์ดที่สอดคล้องกันในตารางการรวม เร็กคอร์ดเหล่านี้จะจับคู่กับเร็กคอร์ด NULL เพื่อให้รวมอยู่ในเอาต์พุต
66.You need to find the salary grade obtained by each employee. Which of the following query will you use? (Consider the table structures 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)
SQL> desc grade
Name Null? Type
----------------------- -------- ----------------
GRADE NUMBER
LOSAL NUMBER
HISAL NUMBER
SELECT employee_id , salary, grade FROM employees e JOIN grade g ON g.grade BETWEEN g.losal AND g.hisal
SELECT employee_id , salary, grade FROM employees e FULL OUTER JOIN grade g WHERE g.grade > g.losal AND < g.hisal;
SELECT employee_id , salary, grade FROM employees e JOIN grade g ON (MIN(g.grade) = g.losal AND MAX(g.grade) = g.hisal);
- ไม่มีข้อใดข้างต้น
Answer: A.
67.Examine the table structures 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)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
ประเมินคำสั่ง SQL นี้:
SELECT e.employee_id , (.25* e.salary) + (.5 * e.commission_pct) + (.75 * b.bonus) as calc_val
FROM employees e, bonus b
WHERE e.employee_id = b.employee_id ;
จะเกิดอะไรขึ้นถ้าคุณลบวงเล็บทั้งหมดออกจากการคำนวณ
- ค่าที่แสดงในคอลัมน์ calc_val จะน้อยลง
- ค่าที่แสดงในคอลัมน์ calc_val จะสูงขึ้น
- จะไม่มีความแตกต่างในคอลัมน์ calc_val
- จะมีการรายงานข้อผิดพลาด
Answer: C.
68.Consider the exhibit and examine the structures of the EMPLOYEES, DEPARTMENTS, and GRADE tables. For which situation would you use a non-equijoin query?
- เพื่อหาเกรดสำหรับพนักงานแต่ละคน
- เพื่อแสดงชื่อ job_id และชื่อผู้จัดการสำหรับพนักงานทั้งหมด
- เพื่อค้นหาชื่อแผนกของพนักงาน
- เพื่อหาจำนวนพนักงานที่ทำงานในแผนกธุรการและมีรายได้น้อยกว่า 30000
Answer: A. การเข้าร่วมที่ไม่เท่าเทียมกันสร้างความสัมพันธ์บนพื้นฐานของสิ่งอื่นที่ไม่ใช่เงื่อนไขที่เท่าเทียมกัน ค่าช่วงที่ใช้กับการรวมที่ไม่เท่ากันจะต้องไม่รวมกัน
69.In which three cases would you use the USING clause? (Choose three.)
- คุณต้องการสร้าง non-equijoin
- ตารางที่จะเข้าร่วมมีคอลัมน์ NULL หลายคอลัมน์
- ตารางที่จะเข้าร่วมมีคอลัมน์ที่มีชื่อเดียวกันและประเภทข้อมูลต่างกัน
- คุณต้องการใช้การรวมแบบ NATURAL แต่คุณต้องการ จำกัด จำนวนคอลัมน์ในเงื่อนไขการรวม
Answer: C, D. วิธี JOIN .... USING นั้นคล้ายกับวิธี NATURAL JOIN ยกเว้นคอลัมน์ทั่วไปจะระบุไว้ในประโยค USING ไม่สามารถรวมเงื่อนไขในประโยค USING เพื่อระบุว่าตารางเกี่ยวข้องกันอย่างไร นอกจากนี้ไม่สามารถใช้ตัวระบุคอลัมน์สำหรับคอลัมน์ทั่วไปที่ระบุในคำสั่ง USING
70.If the tables EMPLOYEES and BONUS have two columns with identical names viz: - SALARY and JOB_ID, which of the following queries are equivalent to each other? (Consider the table structures 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)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT * FROM employees E JOIN bonus B on (salary, job_id )
SELECT * FROM employees E NATURAL JOIN bonus B on (salary, job_id )
SELECT * FROM employees E JOIN bonus B USING (salary, job_id )
SELECT * FROM employees E JOIN bonus B on (salary, job_id )
Answer: B, C.
71.Examine the table structures 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)
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 สองคำสั่งต่อไปนี้:
Query 1SELECT first_name,department_id
FROM employees E JOIN departments D
USING (department_id );
Query 2
SELECT first_name,department_id
FROM employees E NATURAL JOIN departments D
USING (department_id );
ข้อความใดเป็นจริงเกี่ยวกับผลลัพธ์
- แบบสอบถาม 1 เท่านั้นที่ดำเนินการสำเร็จและให้ผลลัพธ์ที่ต้องการ
- แบบสอบถาม 2 เท่านั้นที่ดำเนินการสำเร็จและให้ผลลัพธ์ที่ต้องการ
- ทั้งแบบสอบถาม 1 และ 2 ดำเนินการสำเร็จและให้ผลลัพธ์ที่แตกต่างกัน
- ทั้งแบบสอบถาม 1 และ 2 ดำเนินการสำเร็จและให้ผลลัพธ์ที่ต้องการเหมือนกัน
Answer: D.
72.You need to generate a report showing the department location along with the employee name for all hires made before 20th January, 2013.
คุณออกแบบสอบถามต่อไปนี้:
SELECT department_name , first_name||' '||last_name
FROM employees E JOIN department d
ON ( hire_date < '20-JAN-2013')
JOIN locations L
ON (l.location_id = d.location_id) ;
ข้อความใดเป็นจริงเกี่ยวกับข้อความค้นหาข้างต้น
- ดำเนินการสำเร็จและให้ผลลัพธ์ที่ต้องการ
- ดำเนินการสำเร็จ แต่ไม่ให้ผลลัพธ์ที่ต้องการ
- เกิดข้อผิดพลาดเนื่องจากลำดับการรวมของตารางไม่ถูกต้อง
- มันก่อให้เกิดข้อผิดพลาดเนื่องจากไม่สามารถใช้เงื่อนไข equijoin และ non-equijoin ในคำสั่ง SELECT เดียวกันได้
Answer: B.
73.Examine the structure of the EMPLOYEES table:
คุณต้องการตรวจสอบว่ามีการป้อนรายละเอียดของพนักงานมากกว่าหนึ่งครั้งโดยใช้ EMPLOYEE_ID อื่นหรือไม่โดยระบุชื่อที่ซ้ำกันทั้งหมด คุณสามารถใช้วิธีใดเพื่อให้ได้ผลลัพธ์ที่ต้องการ
- self-join
- การเข้าร่วมภายนอกเต็มรูปแบบด้วยการเข้าร่วมด้วยตนเอง
- ด้านซ้ายเข้าร่วมด้วยการเข้าร่วมด้วยตนเอง
- การเข้าร่วมภายนอกที่ถูกต้องด้วยการเข้าร่วมด้วยตนเอง
Answer: A. การรวมตัวเองจะใช้เมื่อต้องรวมตารางเข้ากับตัวเองเพื่อดึงข้อมูลที่คุณต้องการ นามแฝงของตารางจำเป็นต้องมีในส่วนคำสั่ง FROM เพื่อทำการรวมตัวเอง
Examine the structure of the tables DEPARTMENTS and LOCATIONS and answer the questions 74 and 75 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)
74.You need to find out the departments that have not been allocated any location. Which query would give the required result?
SELECT d.department_id , d.department_name FROM departments d JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d RIGHT OUTER JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d FULL JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d LEFT OUTER JOIN locations l ON (d.location_id = l.location_id);
Answer: B.
75.You want to list all departments that are not located in any location along with the department name. Evaluate the following query:
SELECT d.department_id , d.department_name ,l.location_id, l.city
FROM departments D __________________ location L
ON (d.location_id = l.location_id);
ตัวเลือก JOIN สองตัวใดที่สามารถใช้ในช่องว่างในแบบสอบถามด้านบนเพื่อให้ได้ผลลัพธ์ที่ถูกต้อง
- JOIN
- เข้าร่วมกับธรรมชาติ
- ซ้ายนอกเข้าร่วม
- ขวาเข้าร่วม
Answer: A, C.
76. You need to generate a report that shows all department IDs, with corresponding employees (if any) and bonus details (if any), for all employees. Which FROM clause gives the required result? (Consider the table structures 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)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
- จากแผนก LEFT OUTER JOIN พนักงานโดยใช้ (department_id) FULL OUTER JOIN โบนัส
- FULL OUTER JOIN แผนกโดยใช้ (department_id);
- จากพนักงานโบนัสเข้าร่วมโดยใช้ (job_id)
- จากพนักงานเต็มแผนกนอกเข้าร่วมเต็มโบนัสจากการเข้าร่วมจากภายนอก
Answer: A.
77. Examine the following exhibits:
คุณต้องการสร้างรายงานที่แสดงรหัสของพนักงานและค่าคอมมิชชั่นและแผนกที่เกี่ยวข้อง (ถ้ามี) หากมีค่าคอมมิชชั่นอยู่หรือไม่ ประเมินแบบสอบถามต่อไปนี้:
SELECT e.employee_id , bonus, department_name FROM bonus b_____________ employees
USING (job_id ) ____________ departments
USING (department_id )
WHERE commission_pct IS NOT NULL;
ชุดค่าผสมใดที่ใช้ในช่องว่างในแบบสอบถามด้านบนให้ผลลัพธ์ที่ถูกต้อง
- เข้าร่วม; ซ้ายนอกเข้าร่วม
- เข้าร่วมเต็มรูปแบบจากภายนอก; เข้าร่วมเต็มรูปแบบจากภายนอก
- ขวาเข้าร่วม; ซ้ายนอกเข้าร่วม
- ซ้ายเข้าร่วม; ขวาเข้าร่วม
Answer: A.
78.Predict the outcome of the following query.
SELECT e.salary, bonus
FROM employees E JOIN bonus b
USING (salary,job_id );
- มันดำเนินการสำเร็จ
- มันแสดงข้อผิดพลาดเนื่องจากโบนัสใน SELECT ไม่ใช่นามแฝง
- มันแสดงข้อผิดพลาดเนื่องจาก USING clause ต้องมีคอลัมน์ไม่เกิน 1 คอลัมน์
- ดำเนินการสำเร็จ แต่ผลลัพธ์ไม่ถูกต้อง
Answer: D.
View the Exhibit and examine the structure of the EMPLOYEES, DEPARTMENTS, LOCATIONS and BONUS. Answer the questions from 79 and 80 that follow:
79.You need to list all the departments in the city of Zurich. You execute the following query:
SELECT D.DEPARTMENT_ID , D.DEPARTMENT_NAME , L.CITY
FROM departments D JOIN LOCATIONS L
USING (LOC_ID,CITY)
WHERE L.CITY = UPPER('ZURICH');
คาดคะเนผลลัพธ์ของข้อความค้นหาข้างต้น
- มันดำเนินการสำเร็จ
- ทำให้เกิดข้อผิดพลาดเนื่องจากใช้ qualifier สำหรับ CITY ในคำสั่ง SELECT
- ทำให้เกิดข้อผิดพลาดเนื่องจากชื่อคอลัมน์ใน SELECT ไม่ตรงกัน
- ทำให้เกิดข้อผิดพลาดเนื่องจาก USING clause มี CITY ซึ่งไม่ใช่คอลัมน์ที่ตรงกัน
Answer: D. ควรใช้เฉพาะชื่อคอลัมน์ที่ตรงกันใน USING clause
80.Answer the question that follows the query given below:
SELECT e.first_name, d.department_id , e.salary, b.bonus
FROM bonus b join employees e
USING (job_id )
JOIN department d
USING (department_id )
WHERE d.loc = 'Zurich';
คุณจำเป็นต้องแยกรายงานที่ระบุชื่อหมายเลขแผนกเงินเดือนและโบนัสของพนักงานของ บริษัท ชื่อ 'ABC' แบบสอบถามใดต่อไปนี้จะช่วยแก้จุดประสงค์
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM bonus b join employees e join departments d on (b.job_id = e.job_id ) on (e.department_id =d.department_id ) WHERE d.loc = 'Zurich';
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM bonus b join employees e on (b.job_id = e.job_id ) JOIN department d on (e.department_id =d.department_id ) WHERE d.loc = 'Zurich';
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM employees e join bonus b USING (job_id ) JOIN department d USING (department_id ) WHERE d.loc = 'Zurich';
- ไม่มีข้อใดข้างต้น
Answer: C. คำค้นหา A จะทำให้เกิดข้อผิดพลาดทางไวยากรณ์แบบสอบถาม B จะทำให้เกิดข้อผิดพลาดของตัวระบุที่ไม่ถูกต้องระหว่างโบนัสและแผนก
Examine the Exhibits given below and answer the questions 81 to 85 that follow.
81. You need to find the managers' name for those employees who earn more than 20000. Which of the following queries will work for getting the required results?
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M USING (e.manager_id = m.employee_id ) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M USING (e.manager_id) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E NATURAL JOIN employees M USING (e.manager_id = m.employee_id ) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M ON (e.manager_id = m.employee_id ) WHERE e.salary >20000;
Answer: D.
82.You issue the following query:
SELECT e.employee_id ,d.department_id
FROM employees e NATURAL JOIN department d NATURAL JOIN bonus b
WHERE department_id =100;
ข้อความใดเป็นจริงเกี่ยวกับผลลัพธ์ของการสืบค้นนี้
- มันดำเนินการสำเร็จ
- ทำให้เกิดข้อผิดพลาดเนื่องจากการรวม NATURAL สามารถใช้ได้กับสองตารางเท่านั้น
- เกิดข้อผิดพลาดเนื่องจากคอลัมน์ที่ใช้ในการรวม NATURAL ไม่สามารถมีคุณสมบัติได้
- ทำให้เกิดข้อผิดพลาดเนื่องจากคอลัมน์ทั้งหมดที่ใช้ในการเข้าร่วม NATURAL ควรมีคุณสมบัติ
Answer: C.
83.You want to display all the employee names and their corresponding manager names. Evaluate the following query:
SELECT e.first_name "EMP NAME", m.employee_name "MGR NAME"
FROM employees e ______________ employees m
ON e.manager_id = m.employee_id ;
ตัวเลือก JOIN ใดที่สามารถใช้ในช่องว่างในแบบสอบถามด้านบนเพื่อรับผลลัพธ์ที่ต้องการ
- เข้าร่วมภายในที่เรียบง่าย
- เข้าร่วมเต็มรูปแบบจากภายนอก
- ซ้ายนอกเข้าร่วม
- ขวาเข้าร่วม
Answer: C. การรวมภายนอกด้านซ้ายจะรวมระเบียนทั้งหมดจากตารางที่แสดงรายการทางด้านซ้ายของการรวมแม้ว่าจะไม่พบข้อมูลที่ตรงกันกับตารางอื่นในการดำเนินการรวม
Consider the below exhibit and following query to answer questions 84 and 85. (Assume the table department has manager_id and department_name as its columns)
Select *
FROM employees e JOIN department d
ON (e.employee_id = d.manager_id);
84. You need to display a sentence "(first_name) (last_name) is manager of the (department_name) department". Which of the following SELECT statements will successfully replace '*' in the above query to fulfill this requirement?
SELECT e.first_name||' '||e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
SELECT e.first_name, e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
SELECT e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
- ไม่มีข้อใดข้างต้น
Answer: A.
85.What will happen if we omit writing the braces "( )" after the ON clause in the above query?
- จะให้เฉพาะชื่อของพนักงานและชื่อผู้จัดการจะถูกแยกออกจากชุดผลลัพธ์
- จะให้ผลลัพธ์เช่นเดียวกับวงเล็บปีกกา "()"
- จะให้ข้อผิดพลาด ORA เนื่องจากจำเป็นต้องเขียนวงเล็บปีกกา "()" เมื่อใช้อนุประโยค JOIN..ON
- ไม่มีข้อใดข้างต้น
Answer: B. ไม่จำเป็นต้องใช้เครื่องมือจัดฟัน แต่การใช้เครื่องมือดังกล่าวช่วยให้อ่านเงื่อนไขภายในได้อย่างชัดเจน
86. Which of the following queries creates a Cartesian join?
SELECT title, authorid FROM books, bookauthor;
SELECT title, name FROM books CROSS JOIN publisher;
SELECT title, gift FROM books NATURAL JOIN promotion;
- ทั้งหมดข้างต้น
Answer: A, B. การรวมคาร์ทีเซียนระหว่างสองตารางจะส่งคืนการรวมแถวที่เป็นไปได้ทั้งหมดจากตาราง การรวมคาร์ทีเซียนสามารถสร้างได้โดยไม่รวมการดำเนินการเข้าร่วมในแบบสอบถามหรือโดยใช้การเข้าร่วมแบบข้าม
87. Which of the following operators is not allowed in an outer join?
- AND
- =
- OR
- >
Answer: C. Oracle ยกข้อยกเว้น "ORA-01719: ตัวดำเนินการรวมภายนอก (+) ไม่อนุญาตในตัวถูกดำเนินการของ OR หรือ IN"
88. Which of the following queries contains an equality join?
SELECT title, authorid FROM books, bookauthor WHERE books.isbn = bookauthor.isbn AND retail > 20;
SELECT title, name FROM books CROSS JOIN publisher;
SELECT title, gift FROM books, promotion WHERE retail >= minretail AND retail <= maxretail;
- ไม่มีข้อใดข้างต้น
Answer: A. การรวมความเท่าเทียมจะถูกสร้างขึ้นเมื่อข้อมูลการรวมระเบียนจากตารางที่ต่างกันสองตารางเป็นการจับคู่แบบตรงทั้งหมด (นั่นคือเงื่อนไขความเท่าเทียมกันจะสร้างความสัมพันธ์)
89. Which of the following queries contains a non-equality join?
SELECT title, authorid FROM books, bookauthor WHERE books.isbn = bookauthor.isbn AND retail > 20;
SELECT title, name FROM books JOIN publisher USING (pubid);
SELECT title, gift FROM books, promotion WHERE retail >= minretail AND retail <= maxretail;
- ไม่มีข้อใดข้างต้น
Answer: D. Nonequijoins จับคู่ค่าคอลัมน์จากตารางต่างๆโดยยึดตามนิพจน์อสมการ ค่าของคอลัมน์การรวมในแต่ละแถวในตารางต้นทางจะถูกเปรียบเทียบกับค่าที่เกี่ยวข้องในตารางเป้าหมาย พบการจับคู่หากนิพจน์ที่ใช้ในการรวมตามตัวดำเนินการอสมการประเมินว่าเป็นจริง เมื่อมีการสร้างการรวมดังกล่าวจะดำเนินการ nonequijoin ไม่มีการระบุ nonequijoin โดยใช้ไวยากรณ์ JOIN..ON แต่เงื่อนไขการเข้าร่วมมีตัวดำเนินการอสมการแทนที่จะเป็นเครื่องหมายเท่ากับ
90. The following SQL statement contains which type of join?
SELECT title, order#, quantity
FROM books FULL OUTER JOIN orderitems
ON books.isbn = orderitems.isbn;
- equality
- self-join
- non-equality
- การเข้าร่วมภายนอก
Answer: D. การรวมภายนอกแบบเต็มจะรวมเรกคอร์ดทั้งหมดจากทั้งสองตารางแม้ว่าจะไม่พบเรกคอร์ดที่ตรงกันในตารางอื่นก็ตาม
91. Which of the following queries is valid?
SELECT b.title, b.retail, o.quantity FROM books b NATURAL JOIN orders od NATURAL JOIN orderitems o WHERE od.order# = 1005;
SELECT b.title, b.retail, o.quantity FROM books b, orders od, orderitems o WHERE orders.order# = orderitems.order# AND orderitems.isbn=books.isbn AND od.order#=1005;
SELECT b.title, b.retail, o.quantity FROM books b, orderitems o WHERE o.isbn = b.isbn AND o.order#=1005;
- ไม่มีข้อใดข้างต้น
Answer: C. หากตารางในการรวมมีนามแฝงคอลัมน์ที่เลือกจะต้องอ้างอิงด้วยนามแฝงไม่ใช่ชื่อตารางจริง
92. Given the following query.
SELECT zip, order#
FROM customers NATURAL JOIN orders;
คำค้นหาใดต่อไปนี้เทียบเท่า
SELECT zip, order# FROM customers JOIN orders WHERE customers.customer# = orders.customer#;
SELECT zip, order# FROM customers, orders WHERE customers.customer# = orders.customer#;
SELECT zip, order# FROM customers, orders WHERE customers.customer# = orders.customer# (+);
- ไม่มีข้อใดข้างต้น
Answer: B. Natural join สั่งให้ Oracle ระบุคอลัมน์ที่มีชื่อเหมือนกันระหว่างตารางต้นทางและตารางเป้าหมาย
93. Examine the table structures as given. Which line in the following SQL statement raises an error?
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)
1. SELECT e.first_name, d.department_name
2. FROM employees e, department d
3. WHERE e.department_id=d.department_id
- บรรทัดที่ 1
- บรรทัดที่ 2
- บรรทัดที่ 3
- ไม่มีข้อผิดพลาด
Answer: A. หากแบบสอบถามใช้ชื่อนามแฝงในเงื่อนไขการรวมคอลัมน์ควรใช้นามแฝงเพื่อการอ้างอิง
94. Given the following query:
SELECT lastname, firstname, order#
FROM customers LEFT OUTER JOIN orders
USING (customer#)
ORDER BY customer#;
คำค้นหาใดต่อไปนี้ให้ผลลัพธ์เหมือนกัน
SELECT lastname, firstname, order# FROM customers c OUTER JOIN orders o ON c.customer# = o.customer# ORDER BY c.customer#;
SELECT lastname, firstname, order# FROM orders o RIGHT OUTER JOIN customers c ON c.customer# = o.customer# ORDER BY c.customer#;
SELECT lastname, firstname, order# FROM customers c, orders o WHERE c.customer# = o.customer# (+) ORDER BY c.customer#;
- ไม่มีข้อใดข้างต้น
Answer: B, C.
95. Which of the below statements are true?
- ไม่สามารถใช้ฟังก์ชันกลุ่มกับข้อมูลจากแหล่งข้อมูลหลายแหล่ง
- หากตารางหลายตารางรวมกันในแบบสอบถามมีคอลัมน์ที่เหมือนกัน Oracle จะเลือกเพียงรายการเดียว
- การรวมแบบธรรมชาติใช้เพื่อรวมแถวจากสองตารางโดยยึดตามคอลัมน์ที่เหมือนกัน
- A และ B
Answer: C. ฟังก์ชันกลุ่มสามารถใช้กับแบบสอบถามโดยใช้การรวม Oracle ต้องอ้างอิงคอลัมน์ที่ไม่ชัดเจนโดยใช้ตัวระบุ
96. Which line in the following SQL statement raises an error?
1. SELECT name, title
2. FROM books JOIN publisher
3. WHERE books.pubid = publisher.pubid
4. AND
5. cost < 45.95
- บรรทัดที่ 1
- บรรทัดที่ 2
- บรรทัดที่ 3
- บรรทัดที่ 4
Answer: C. เนื่องจากตารางถูกรวมเข้าด้วยกันโดยใช้คีย์เวิร์ด JOIN เงื่อนไขความเท่าเทียมกันควรเขียนด้วย USING clause ไม่ใช่ WHERE clause
97. Given the following query:
SELECT title, gift
FROM books CROSS JOIN promotion;
คำค้นหาใดต่อไปนี้เทียบเท่า
SELECT title, gift FROM books NATURAL JOIN promotion;
SELECT title FROM books INTERSECT SELECT gift FROM promotion;
SELECT title FROM books UNION ALL SELECT gift FROM promotion;
SELECT title, gift FROM books, promotion;
Answer: D. การรวมคาร์ทีเซียนเหมือนกับการรวมแบบครอส
98. If the CUSTOMERS table contains seven records and the ORDERS table has eight records, how many records does the following query produce?
SELECT *
FROM customers CROSS JOIN orders;
- 0
- 56
- 7
- 15
Answer: B. การรวมข้ามคือผลคูณไขว้ของแถวที่มีอยู่ในสองตาราง
99. Which of the following SQL statements is not valid?
SELECT b.isbn, p.name FROM books b NATURAL JOIN publisher p;
SELECT isbn, name FROM books b, publisher p WHERE b.pubid = p.pubid;
SELECT isbn, name FROM books b JOIN publisher p ON b.pubid = p.pubid;
SELECT isbn, name FROM books JOIN publisher USING (pubid);
Answer: A. คอลัมน์ที่ไม่ชัดเจนจะต้องอ้างอิงกับคุณสมบัติตาราง
100. Which of the following lists all books published by the publisher named 'Printing Is Us'?
SELECT title FROM books NATURAL JOIN publisher WHERE name = 'PRINTING IS US';
SELECT title FROM books, publisher WHERE pubname = 1;
SELECT * FROM books b, publisher p JOIN tables ON b.pubid = p.pubid WHERE name = 'PRINTING IS US';
- ไม่มีข้อใดข้างต้น
Answer: A. สมมติว่าคอลัมน์ NAME ไม่มีอยู่ในตาราง BOOKS แบบสอบถาม A จะถูกต้อง
101. Which of the following SQL statements is not valid?
SELECT isbn FROM books MINUS SELECT isbn FROM orderitems;
SELECT isbn, name FROM books, publisher WHERE books.pubid (+) = publisher.pubid (+);
SELECT title, name FROM books NATURAL JOIN publisher
- คำสั่ง SQL ทั้งหมดข้างต้นถูกต้อง
Answer: B. คำค้นหา B ทำให้เกิดข้อยกเว้น "ORA-01468: เพรดิเคตอาจอ้างอิงตารางที่เข้าร่วมภายนอกเพียงตารางเดียวเท่านั้น"
102. Which of the following statements about an outer join between two tables is true?
- ถ้าความสัมพันธ์ระหว่างตารางถูกสร้างขึ้นด้วยคำสั่ง WHERE ทั้งสองตารางสามารถรวมตัวดำเนินการรวมภายนอกได้
- หากต้องการรวมระเบียนที่ไม่ตรงกันในผลลัพธ์ระเบียนจะจับคู่กับระเบียน NULL ในตารางที่มีข้อบกพร่อง
- คีย์เวิร์ด RIGHT, LEFT และ FULL เทียบเท่ากัน
- ทั้งหมดข้างต้น
Answer: B.
103. Which line in the following SQL statement raises an error?
1. SELECT name, title
2. FROM books b, publisher p
3. WHERE books.pubid = publisher.pubid
4. AND
5. (retail > 25 OR retail-cost > 18.95);
- บรรทัดที่ 1
- บรรทัดที่ 3
- บรรทัดที่ 4
- บรรทัดที่ 5
Answer: B. เนื่องจากตารางที่ใช้ในแบบสอบถามมีคุณสมบัติจึงต้องอ้างอิงคอลัมน์โดยใช้สิ่งเดียวกัน
104. What is the maximum number of characters allowed in a table alias?
- 10
- 155
- 255
- 30
Answer: D. นามแฝงของตารางสามารถมีได้สูงสุด 30 อักขระ
105. Which of the following SQL statements is valid?
SELECT books.title, orderitems.quantity FROM books b, orderitems o WHERE b.isbn= o.ibsn;
SELECT title, quantity FROM books b JOIN orderitems o;
SELECT books.title, orderitems.quantity FROM books JOIN orderitems ON books.isbn = orderitems.isbn;
- ไม่มีข้อใดข้างต้น
Answer: C.