1.ง่าย
UNION ทำอะไรกับผลลัพธ์ของคิวรี SELECT สองคิวรี?
- Aเก็บเฉพาะแถวที่อยู่ในคิวรีแรกแต่ไม่อยู่ในคิวรีที่สอง
- Bเชื่อมเคียงกันด้วยคีย์
- Cเก็บเฉพาะแถวที่ปรากฏในทั้งสอง
- Dรวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
2.ง่าย
คำสั่ง เช่น CREATE, ALTER และ DROP จัดอยู่ในส่วนใดของ SQL?
- Aภาษานิยามข้อมูล (Data Definition Language, DDL)
- Bภาษาจัดการข้อมูล (Data Manipulation Language, DML)
- Cภาษาควบคุมข้อมูล (Data Control Language, DCL)
- Dภาษาควบคุมทรานแซกชัน (Transaction Control Language, TCL)
3.ง่าย
INNER JOIN ให้ผลลัพธ์เป็น:
- Aทุกแถวจากทั้งสองตาราง
- Bทุกแถวจากตารางซ้าย โดยมี NULL ในส่วนที่ไม่มีค่าตรงกัน
- Cแถวที่ไม่ตรงกัน
- Dเฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
4.ปานกลาง
คอลัมน์มีค่า 10, 20 และ NULL AVG(col) คืนค่าอะไร?
- ANULL
- B10
- C30
- D15
5.ปานกลาง
dirty read คืออะไร?
- Aการอ่านข้อมูลที่ทรานแซกชันอื่นเขียนไว้แต่ยังไม่ commit
- Bการอ่านข้อมูลจากดิสก์ที่เสียหาย
- Cการอ่านแถวเดิมสองครั้งแล้วได้ค่าเดิม
- Dการอ่านข้อมูลโดยไม่มี WHERE
6.ปานกลาง
ข้อใดเกี่ยวกับ HAVING ถูกต้อง?
- Aใช้ฟังก์ชันรวมค่าเพื่อกรองกลุ่มได้
- Bต้องมาก่อน WHERE ในคำสั่ง SELECT
- Cใช้เรียงลำดับผลลัพธ์
- Dใช้ร่วมกับ GROUP BY ไม่ได้
7.ยาก
ตาราง enrolment(student_id, course_id, student_name, grade) มีคีย์ (student_id, course_id) ละเมิดรูปแบบบรรทัดฐานใด?
- Aรูปแบบบรรทัดฐานที่สอง เพราะ student_name ขึ้นกับ student_id เท่านั้น
- Bเฉพาะรูปแบบบรรทัดฐานที่สาม เพราะ grade ขึ้นกับ student_name
- Cไม่ละเมิด เพราะอยู่ใน BCNF
- Dรูปแบบบรรทัดฐานที่หนึ่ง เพราะคอลัมน์ grade ไม่เก็บค่าอะตอมมิก
8.ยาก
เหตุใดคิวรีที่มี WHERE YEAR(order_date) = 2025 อาจไม่ใช้ดัชนีบน order_date?
- AYEAR ไม่ใช่ SQL ที่ถูกต้อง
- Bการใช้ฟังก์ชันกับคอลัมน์ทำให้ค้นหาช่วงด้วยดัชนีแบบง่ายไม่ได้
- Cดัชนีใช้กับวันที่ไม่ได้เลย
- Dดัชนีบน order_date ใช้เฉพาะกับ ORDER BY ไม่เคยใช้กับ WHERE
เฉลย
- 1. D · รวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
- 2. A · ภาษานิยามข้อมูล (Data Definition Language, DDL)
- 3. D · เฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
- 4. D · 15
- 5. A · การอ่านข้อมูลที่ทรานแซกชันอื่นเขียนไว้แต่ยังไม่ commit
- 6. A · ใช้ฟังก์ชันรวมค่าเพื่อกรองกลุ่มได้
- 7. A · รูปแบบบรรทัดฐานที่สอง เพราะ student_name ขึ้นกับ student_id เท่านั้น
- 8. B · การใช้ฟังก์ชันกับคอลัมน์ทำให้ค้นหาช่วงด้วยดัชนีแบบง่ายไม่ได้
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com