1.ง่าย
ตัวดำเนินการใดใช้จับคู่รูปแบบข้อความอย่างง่ายในอนุประโยค WHERE?
- AMATCH
- BSIMILAR
- CLIKE
- DCONTAINS
2.ง่าย
WHERE price BETWEEN 10 AND 20 เลือกแถวใด?
- Aเฉพาะแถวที่ price เท่ากับ 10 หรือ 20
- Bแถวที่ price ตั้งแต่ 10 ถึง 20 รวม 10 และ 20
- Cแถวที่ price อยู่นอกช่วง 10 ถึง 20
- Dแถวที่ price มากกว่า 10 และน้อยกว่า 20 โดยไม่รวม 10 และ 20
3.ง่าย
คีย์เวิร์ด SQL ใดลบแถวซ้ำออกจากผลลัพธ์?
- AUNIQUE
- BDISTINCT
- CSINGLE
- DDIFFERENT
4.ปานกลาง
คิวรีใดแสดงรายชื่อลูกค้าที่ไม่เคยสั่งซื้อ?
- ASELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
- DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
5.ปานกลาง
ตารางมีแถวที่ col เป็น NULL แถวใดที่ WHERE col = NULL คืนมา?
- Aไม่มีแถวเลย เพราะการเปรียบเทียบให้ผลไม่ทราบค่า
- Bข้อผิดพลาดในทุกฐานข้อมูล
- Cทุกแถวของตาราง
- Dเฉพาะแถวที่ col เป็น NULL เช่นเดียวกับ IS NULL
6.ปานกลาง
คีย์นอกถูกประกาศด้วย ON DELETE CASCADE เกิดอะไรขึ้นเมื่อแถวแม่ถูกลบ?
- Aแถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
- Bแถวแม่ถูกคัดลอกไปยังตารางเก็บถาวร
- Cการลบถูกปฏิเสธเสมอ
- Dคีย์นอกในแถวลูกถูกตั้งเป็น NULL โดยอัตโนมัติ
7.ยาก
ซับคิวรีแบบสัมพันธ์ (correlated subquery) คือซับคิวรีที่:
- Aใช้เฉพาะฟังก์ชันรวมค่า
- Bอ้างอิงคอลัมน์ของคิวรีด้านนอกและถูกประเมินต่อแถวด้านนอก
- Cรันเพียงครั้งเดียวก่อนคิวรีด้านนอกและแคชผลลัพธ์ไว้ใช้กับทุกแถว
- Dเชื่อมสองตารางด้วยคีย์นอก
8.ยาก
เหตุใด SELECT dept, name, COUNT(*) FROM emp GROUP BY dept จึงไม่ถูกต้องใน SQL มาตรฐาน?
- Adept ต้องอยู่ในฟังก์ชันรวมค่า
- Bname ไม่ได้ถูกจัดกลุ่มหรือรวมค่า จึงไม่มีค่าเดียวต่อกลุ่ม
- CGROUP BY ต้องระบุทุกคอลัมน์ของตาราง
- DCOUNT(*) ใช้ร่วมกับ GROUP BY ไม่ได้
เฉลย
- 1. C · LIKE
- 2. B · แถวที่ price ตั้งแต่ 10 ถึง 20 รวม 10 และ 20
- 3. B · DISTINCT
- 4. B · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 5. A · ไม่มีแถวเลย เพราะการเปรียบเทียบให้ผลไม่ทราบค่า
- 6. A · แถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
- 7. B · อ้างอิงคอลัมน์ของคิวรีด้านนอกและถูกประเมินต่อแถวด้านนอก
- 8. B · name ไม่ได้ถูกจัดกลุ่มหรือรวมค่า จึงไม่มีค่าเดียวต่อกลุ่ม
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com