ใบงาน ฐานข้อมูลและ SQL พร้อมเฉลย

ใบงาน ฐานข้อมูลและ SQL ฟรีสำหรับพิมพ์: 8 ข้อ ตั้งแต่ระดับง่ายถึงระดับข้อสอบจริง พร้อมเฉลย พิมพ์หรือบันทึกเป็น PDF ได้

ใบงานใหม่ฝึกออนไลน์พร้อมคำใบ้

สำหรับผู้สอน: พิมพ์ ทำสำเนา และใช้ในชั้นเรียนได้ฟรี ใบงานใหม่แต่ละชุดมีค่าตัวเลขใหม่และเฉลยของตัวเอง หากใส่ลิงก์ไปยัง ExamProblems ในหน้ารายวิชาของคุณ เราจะขอบคุณมาก

ชื่อ: ____________________   วันที่: ____________

1.ง่าย

UNION ทำอะไรกับผลลัพธ์ของคิวรี SELECT สองคิวรี?

  1. Aเก็บเฉพาะแถวที่อยู่ในคิวรีแรกแต่ไม่อยู่ในคิวรีที่สอง
  2. Bเชื่อมเคียงกันด้วยคีย์
  3. Cเก็บเฉพาะแถวที่ปรากฏในทั้งสอง
  4. Dรวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
2.ง่าย

คำสั่ง เช่น CREATE, ALTER และ DROP จัดอยู่ในส่วนใดของ SQL?

  1. Aภาษานิยามข้อมูล (Data Definition Language, DDL)
  2. Bภาษาจัดการข้อมูล (Data Manipulation Language, DML)
  3. Cภาษาควบคุมข้อมูล (Data Control Language, DCL)
  4. Dภาษาควบคุมทรานแซกชัน (Transaction Control Language, TCL)
3.ง่าย

INNER JOIN ให้ผลลัพธ์เป็น:

  1. Aทุกแถวจากทั้งสองตาราง
  2. Bทุกแถวจากตารางซ้าย โดยมี NULL ในส่วนที่ไม่มีค่าตรงกัน
  3. Cแถวที่ไม่ตรงกัน
  4. Dเฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
4.ปานกลาง

คอลัมน์มีค่า 10, 20 และ NULL AVG(col) คืนค่าอะไร?

  1. ANULL
  2. B10
  3. C30
  4. D15
5.ปานกลาง

dirty read คืออะไร?

  1. Aการอ่านข้อมูลที่ทรานแซกชันอื่นเขียนไว้แต่ยังไม่ commit
  2. Bการอ่านข้อมูลจากดิสก์ที่เสียหาย
  3. Cการอ่านแถวเดิมสองครั้งแล้วได้ค่าเดิม
  4. Dการอ่านข้อมูลโดยไม่มี WHERE
6.ปานกลาง

ข้อใดเกี่ยวกับ HAVING ถูกต้อง?

  1. Aใช้ฟังก์ชันรวมค่าเพื่อกรองกลุ่มได้
  2. Bต้องมาก่อน WHERE ในคำสั่ง SELECT
  3. Cใช้เรียงลำดับผลลัพธ์
  4. Dใช้ร่วมกับ GROUP BY ไม่ได้
7.ยาก

ตาราง enrolment(student_id, course_id, student_name, grade) มีคีย์ (student_id, course_id) ละเมิดรูปแบบบรรทัดฐานใด?

  1. Aรูปแบบบรรทัดฐานที่สอง เพราะ student_name ขึ้นกับ student_id เท่านั้น
  2. Bเฉพาะรูปแบบบรรทัดฐานที่สาม เพราะ grade ขึ้นกับ student_name
  3. Cไม่ละเมิด เพราะอยู่ใน BCNF
  4. Dรูปแบบบรรทัดฐานที่หนึ่ง เพราะคอลัมน์ grade ไม่เก็บค่าอะตอมมิก
8.ยาก

เหตุใดคิวรีที่มี WHERE YEAR(order_date) = 2025 อาจไม่ใช้ดัชนีบน order_date?

  1. AYEAR ไม่ใช่ SQL ที่ถูกต้อง
  2. Bการใช้ฟังก์ชันกับคอลัมน์ทำให้ค้นหาช่วงด้วยดัชนีแบบง่ายไม่ได้
  3. Cดัชนีใช้กับวันที่ไม่ได้เลย
  4. Dดัชนีบน order_date ใช้เฉพาะกับ ORDER BY ไม่เคยใช้กับ WHERE

เฉลย

  1. 1. D · รวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
  2. 2. A · ภาษานิยามข้อมูล (Data Definition Language, DDL)
  3. 3. D · เฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
  4. 4. D · 15
  5. 5. A · การอ่านข้อมูลที่ทรานแซกชันอื่นเขียนไว้แต่ยังไม่ commit
  6. 6. A · ใช้ฟังก์ชันรวมค่าเพื่อกรองกลุ่มได้
  7. 7. A · รูปแบบบรรทัดฐานที่สอง เพราะ student_name ขึ้นกับ student_id เท่านั้น
  8. 8. B · การใช้ฟังก์ชันกับคอลัมน์ทำให้ค้นหาช่วงด้วยดัชนีแบบง่ายไม่ได้

เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com