1.ง่าย
UNION ทำอะไรกับผลลัพธ์ของคิวรี SELECT สองคิวรี?
- Aรวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
- Bเก็บเฉพาะแถวที่อยู่ในคิวรีแรกแต่ไม่อยู่ในคิวรีที่สอง
- Cเก็บเฉพาะแถวที่ปรากฏในทั้งสอง
- Dเชื่อมเคียงกันด้วยคีย์
2.ง่าย
ข้อจำกัด CHECK ทำอะไร?
- Aนับแถวในตาราง
- Bตรวจสอบว่ามีตารางอยู่หรือไม่ก่อนรันคิวรีบนตารางนั้น
- Cปฏิเสธแถวที่ค่าไม่เป็นไปตามเงื่อนไข
- Dตรวจสอบรหัสผ่านของผู้ใช้
3.ง่าย
INNER JOIN ให้ผลลัพธ์เป็น:
- Aเฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
- Bแถวที่ไม่ตรงกัน
- Cทุกแถวจากตารางซ้าย โดยมี NULL ในส่วนที่ไม่มีค่าตรงกัน
- Dทุกแถวจากทั้งสองตาราง
4.ปานกลาง
ในพีชคณิตเชิงสัมพันธ์ ตัวดำเนินการการเลือก (σ) สอดคล้องกับอนุประโยค SQL ใด?
- AORDER BY
- Bรายการ SELECT
- CWHERE
- DGROUP BY
5.ปานกลาง
เหตุใด SELECT price * 2 AS double_price FROM t WHERE double_price > 10 จึงล้มเหลวในฐานข้อมูลส่วนใหญ่?
- Aไม่อนุญาตให้คำนวณเลขคณิตในรายการ SELECT
- BWHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี
- Cชื่อแฝงห้ามมีขีดล่าง
- DWHERE เปรียบเทียบได้เฉพาะคอลัมน์ข้อความ
6.ปานกลาง
EXCEPT (เรียก MINUS ใน Oracle) คืนอะไร?
- Aแถวของคิวรีที่สองที่ไม่ปรากฏในคิวรีแรก
- Bทุกแถวจากทั้งสองคิวรีโดยไม่ซ้ำ
- Cแถวของคิวรีแรกที่ไม่ปรากฏในคิวรีที่สอง
- Dแถวที่ปรากฏในทั้งสองคิวรี
7.ยาก
กำหนดการพึ่งพาเชิงฟังก์ชัน A → B, B → C และ C → D บน R(A, B, C, D) ตัวปิด (closure) A+ คืออะไร?
- A{A, B, C}
- B{A, B, C, D}
- C{A}
- D{A, B}
8.ยาก
คิวรี FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' ตัดลูกค้าที่ไม่มีคำสั่งซื้อออกโดยไม่คาดคิด เพราะเหตุใด?
- Aเงื่อนไข WHERE บน o ปฏิเสธแถวที่เติม NULL ทำให้กลายเป็น inner join
- Bการเชื่อมควรใช้ USING แทน ON
- Cstatus เป็นคำสงวน
- DLEFT JOIN ไม่เก็บแถวที่ไม่ตรงกัน
เฉลย
- 1. A · รวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
- 2. C · ปฏิเสธแถวที่ค่าไม่เป็นไปตามเงื่อนไข
- 3. A · เฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
- 4. C · WHERE
- 5. B · WHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี
- 6. C · แถวของคิวรีแรกที่ไม่ปรากฏในคิวรีที่สอง
- 7. B · {A, B, C, D}
- 8. A · เงื่อนไข WHERE บน o ปฏิเสธแถวที่เติม NULL ทำให้กลายเป็น inner join
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com