1.ง่าย
INNER JOIN ให้ผลลัพธ์เป็น:
- Aทุกแถวจากตารางซ้าย โดยมี NULL ในส่วนที่ไม่มีค่าตรงกัน
- Bแถวที่ไม่ตรงกัน
- Cเฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
- Dทุกแถวจากทั้งสองตาราง
2.ง่าย
UNION ทำอะไรกับผลลัพธ์ของคิวรี SELECT สองคิวรี?
- Aรวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
- Bเก็บเฉพาะแถวที่ปรากฏในทั้งสอง
- Cเก็บเฉพาะแถวที่อยู่ในคิวรีแรกแต่ไม่อยู่ในคิวรีที่สอง
- Dเชื่อมเคียงกันด้วยคีย์
3.ง่าย
คีย์หลัก (primary key) คืออะไร?
- Aคอลัมน์แรกของทุกตาราง
- Bรหัสผ่านของฐานข้อมูล
- Cคอลัมน์ที่มีค่าซ้ำกันได้ แต่ห้ามเป็น NULL เด็ดขาด
- Dคอลัมน์หรือชุดคอลัมน์ที่ระบุแต่ละแถวได้อย่างไม่ซ้ำกัน
4.ปานกลาง
คีย์นอกถูกประกาศด้วย ON DELETE CASCADE เกิดอะไรขึ้นเมื่อแถวแม่ถูกลบ?
- Aแถวแม่ถูกคัดลอกไปยังตารางเก็บถาวร
- Bการลบถูกปฏิเสธเสมอ
- Cคีย์นอกในแถวลูกถูกตั้งเป็น NULL โดยอัตโนมัติ
- Dแถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
5.ปานกลาง
รูปแบบบรรทัดฐานที่สาม (3NF) ขจัด:
- Aการพึ่งพาแบบถ่ายทอดระหว่างแอตทริบิวต์ที่ไม่ใช่คีย์
- Bดัชนีที่ซ้ำซ้อนบนคอลัมน์ที่ไม่ได้เป็นส่วนของคีย์
- Cคีย์ประกอบ
- Dค่าอะตอมมิก
6.ปานกลาง
เหตุใด SELECT price * 2 AS double_price FROM t WHERE double_price > 10 จึงล้มเหลวในฐานข้อมูลส่วนใหญ่?
- Aชื่อแฝงห้ามมีขีดล่าง
- Bไม่อนุญาตให้คำนวณเลขคณิตในรายการ SELECT
- CWHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี
- DWHERE เปรียบเทียบได้เฉพาะคอลัมน์ข้อความ
7.ยาก
ตาราง enrolment(student_id, course_id, student_name, grade) มีคีย์ (student_id, course_id) ละเมิดรูปแบบบรรทัดฐานใด?
- Aเฉพาะรูปแบบบรรทัดฐานที่สาม เพราะ grade ขึ้นกับ student_name
- Bไม่ละเมิด เพราะอยู่ใน BCNF
- Cรูปแบบบรรทัดฐานที่หนึ่ง เพราะคอลัมน์ grade ไม่เก็บค่าอะตอมมิก
- Dรูปแบบบรรทัดฐานที่สอง เพราะ student_name ขึ้นกับ student_id เท่านั้น
8.ยาก
เหตุใดคิวรีที่มี WHERE YEAR(order_date) = 2025 อาจไม่ใช้ดัชนีบน order_date?
- Aดัชนีใช้กับวันที่ไม่ได้เลย
- Bดัชนีบน order_date ใช้เฉพาะกับ ORDER BY ไม่เคยใช้กับ WHERE
- Cการใช้ฟังก์ชันกับคอลัมน์ทำให้ค้นหาช่วงด้วยดัชนีแบบง่ายไม่ได้
- DYEAR ไม่ใช่ SQL ที่ถูกต้อง
เฉลย
- 1. C · เฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
- 2. A · รวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
- 3. D · คอลัมน์หรือชุดคอลัมน์ที่ระบุแต่ละแถวได้อย่างไม่ซ้ำกัน
- 4. D · แถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
- 5. A · การพึ่งพาแบบถ่ายทอดระหว่างแอตทริบิวต์ที่ไม่ใช่คีย์
- 6. C · WHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี
- 7. D · รูปแบบบรรทัดฐานที่สอง เพราะ student_name ขึ้นกับ student_id เท่านั้น
- 8. C · การใช้ฟังก์ชันกับคอลัมน์ทำให้ค้นหาช่วงด้วยดัชนีแบบง่ายไม่ได้
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com