ใบงาน ฐานข้อมูลและ SQL พร้อมเฉลย
ใบงาน ฐานข้อมูลและ SQL ฟรีสำหรับพิมพ์: 8 ข้อ ตั้งแต่ระดับง่ายถึงระดับข้อสอบจริง พร้อมเฉลย พิมพ์หรือบันทึกเป็น PDF ได้
สำหรับผู้สอน: พิมพ์ ทำสำเนา และใช้ในชั้นเรียนได้ฟรี ใบงานใหม่แต่ละชุดมีค่าตัวเลขใหม่และเฉลยของตัวเอง หากใส่ลิงก์ไปยัง ExamProblems ในหน้ารายวิชาของคุณ เราจะขอบคุณมาก
ชื่อ: ____________________ วันที่: ____________
1.ง่าย
แผนภาพเอนทิตี–ความสัมพันธ์ (ER diagram) ใช้ทำอะไร?
- Aสร้างแบบจำลองเอนทิตี แอตทริบิวต์ และความสัมพันธ์เมื่อออกแบบฐานข้อมูล
- Bแสดงว่าคิวรีถูกประมวลผลอย่างไร
- Cวัดประสิทธิภาพฐานข้อมูล
- Dแสดงรายชื่อผู้ใช้ฐานข้อมูล
2.ง่าย
UNION ALL ต่างจาก UNION อย่างไร?
- AUNION ALL ใช้ได้กับตารางเดียวเท่านั้น
- BUNION ALL เก็บแถวซ้ำไว้
- CUNION ALL เรียงลำดับผลลัพธ์
- DUNION ALL ลบแถวซ้ำ
3.ง่าย
WHERE country IN ('NL', 'BE', 'DE') ทำอะไร?
- Aเก็บแถวที่ country เท่ากับค่าใดค่าหนึ่งในรายการ
- Bเรียงลำดับแถวตามลำดับในรายการ
- Cเก็บแถวที่ country ไม่อยู่ในรายการ
- Dเก็บแถวที่ค่า country มีรหัสทั้งสามตัวพร้อมกัน
4.ปานกลาง
คีย์นอกถูกประกาศด้วย ON DELETE CASCADE เกิดอะไรขึ้นเมื่อแถวแม่ถูกลบ?
- Aคีย์นอกในแถวลูกถูกตั้งเป็น NULL โดยอัตโนมัติ
- Bการลบถูกปฏิเสธเสมอ
- Cแถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
- Dแถวแม่ถูกคัดลอกไปยังตารางเก็บถาวร
5.ปานกลาง
LEFT JOIN ให้ผลลัพธ์เป็น:
- Aเฉพาะแถวที่ตรงกันจากทั้งสองตาราง
- Bทุกแถวจากตารางขวาเท่านั้น
- Cทุกแถวจากตารางซ้ายและแถวที่ตรงกันจากตารางขวา โดยเป็น NULL เมื่อไม่มีแถวที่ตรงกัน
- Dแถวที่ไม่ตรงกันในทั้งสองตาราง
6.ปานกลาง
ทริกเกอร์ (trigger) ของฐานข้อมูลคืออะไร?
- Aการสำรองฐานข้อมูลตามกำหนดเวลา
- Bคิวรีที่ผู้ใช้รันด้วยมือ
- Cชนิดของดัชนีที่เร่งการค้นหา
- Dโค้ดที่ทำงานอัตโนมัติเมื่อเกิดเหตุการณ์ที่กำหนด เช่น INSERT, UPDATE หรือ DELETE บนตาราง
7.ยาก
หลัง customers LEFT JOIN orders เหตุใดจึงใช้ COUNT(o.id) แทน COUNT(*) เพื่อนับคำสั่งซื้อต่อลูกค้า?
- ACOUNT(*) ไม่อนุญาตหลังการเชื่อม
- BCOUNT(*) นับแถวที่เติม NULL เป็น 1 สำหรับลูกค้าที่ไม่มีคำสั่งซื้อ
- CCOUNT(o.id) นับเฉพาะลูกค้าที่ไม่ซ้ำ
- DCOUNT(*) ละเว้นแถวที่มีค่า NULL
8.ยาก
phantom read คืออะไร?
- Aคิวรีที่ไม่คืนแถวใดเลย
- Bคิวรีซ้ำให้แถวใหม่ที่ทรานแซกชันอื่นที่ commit แล้วแทรกเข้ามา
- Cการอ่านการเปลี่ยนแปลงที่ยังไม่ commit
- Dการอ่านข้อมูลที่ไม่เคยถูกเขียน
เฉลย
- 1. A · สร้างแบบจำลองเอนทิตี แอตทริบิวต์ และความสัมพันธ์เมื่อออกแบบฐานข้อมูล
- 2. B · UNION ALL เก็บแถวซ้ำไว้
- 3. A · เก็บแถวที่ country เท่ากับค่าใดค่าหนึ่งในรายการ
- 4. C · แถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
- 5. C · ทุกแถวจากตารางซ้ายและแถวที่ตรงกันจากตารางขวา โดยเป็น NULL เมื่อไม่มีแถวที่ตรงกัน
- 6. D · โค้ดที่ทำงานอัตโนมัติเมื่อเกิดเหตุการณ์ที่กำหนด เช่น INSERT, UPDATE หรือ DELETE บนตาราง
- 7. B · COUNT(*) นับแถวที่เติม NULL เป็น 1 สำหรับลูกค้าที่ไม่มีคำสั่งซื้อ
- 8. B · คิวรีซ้ำให้แถวใหม่ที่ทรานแซกชันอื่นที่ commit แล้วแทรกเข้ามา
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com