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

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

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

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

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

1.ง่าย

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

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

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

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

คีย์หลัก (primary key) คืออะไร?

  1. Aคอลัมน์แรกของทุกตาราง
  2. Bรหัสผ่านของฐานข้อมูล
  3. Cคอลัมน์ที่มีค่าซ้ำกันได้ แต่ห้ามเป็น NULL เด็ดขาด
  4. Dคอลัมน์หรือชุดคอลัมน์ที่ระบุแต่ละแถวได้อย่างไม่ซ้ำกัน
4.ปานกลาง

คีย์นอกถูกประกาศด้วย ON DELETE CASCADE เกิดอะไรขึ้นเมื่อแถวแม่ถูกลบ?

  1. Aแถวแม่ถูกคัดลอกไปยังตารางเก็บถาวร
  2. Bการลบถูกปฏิเสธเสมอ
  3. Cคีย์นอกในแถวลูกถูกตั้งเป็น NULL โดยอัตโนมัติ
  4. Dแถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
5.ปานกลาง

รูปแบบบรรทัดฐานที่สาม (3NF) ขจัด:

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

เหตุใด SELECT price * 2 AS double_price FROM t WHERE double_price > 10 จึงล้มเหลวในฐานข้อมูลส่วนใหญ่?

  1. Aชื่อแฝงห้ามมีขีดล่าง
  2. Bไม่อนุญาตให้คำนวณเลขคณิตในรายการ SELECT
  3. CWHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี
  4. DWHERE เปรียบเทียบได้เฉพาะคอลัมน์ข้อความ
7.ยาก

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

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

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

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

เฉลย

  1. 1. C · เฉพาะแถวที่มีค่าตรงกันในทั้งสองตาราง
  2. 2. A · รวมเป็นผลลัพธ์เดียวและลบแถวซ้ำ
  3. 3. D · คอลัมน์หรือชุดคอลัมน์ที่ระบุแต่ละแถวได้อย่างไม่ซ้ำกัน
  4. 4. D · แถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
  5. 5. A · การพึ่งพาแบบถ่ายทอดระหว่างแอตทริบิวต์ที่ไม่ใช่คีย์
  6. 6. C · WHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี
  7. 7. D · รูปแบบบรรทัดฐานที่สอง เพราะ student_name ขึ้นกับ student_id เท่านั้น
  8. 8. C · การใช้ฟังก์ชันกับคอลัมน์ทำให้ค้นหาช่วงด้วยดัชนีแบบง่ายไม่ได้

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