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

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

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

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

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

1.ง่าย

คีย์นอก (foreign key) คือ:

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

ลูกค้าหนึ่งคนสั่งซื้อได้หลายคำสั่ง แต่แต่ละคำสั่งซื้อเป็นของลูกค้าเพียงคนเดียว นี่เป็นความสัมพันธ์ประเภทใด?

  1. Aหนึ่งต่อหนึ่ง (one-to-one)
  2. Bศูนย์ต่อศูนย์
  3. Cหนึ่งต่อหลาย (one-to-many)
  4. Dหลายต่อหลาย (many-to-many)
3.ง่าย

คำสั่ง SQL ใดเพิ่มแถวใหม่ลงในตาราง?

  1. ASELECT
  2. BUPDATE
  3. CALTER
  4. DINSERT
4.ปานกลาง

นักเรียนลงเรียนได้หลายวิชา และวิชามีนักเรียนหลายคน จะสร้างแบบจำลองนี้ในตารางอย่างไร?

  1. Aด้วยตารางเชื่อม (junction table) ที่เก็บคีย์นอกไปยังทั้ง students และ courses
  2. Bโดยรวม students และ courses เป็นตารางเดียว
  3. Cด้วยรายการ id ของวิชาที่เก็บในคอลัมน์เดียว
  4. Dด้วยคอลัมน์คีย์นอก course_id ในตาราง students ที่ชี้ไปยัง courses
5.ปานกลาง

ROLLBACK TO SAVEPOINT s1 ทำอะไร?

  1. Aยกเลิกทั้งทรานแซกชันตั้งแต่ต้น
  2. Bลบจุดบันทึกและตารางทั้งหมดที่เปลี่ยนตั้งแต่นั้น
  3. Cจบทรานแซกชันและ commit ทั้งหมด
  4. Dยกเลิกการเปลี่ยนแปลงหลังจุดบันทึก s1 โดยคงทรานแซกชันไว้
6.ปานกลาง

ตารางมีแถวที่ col เป็น NULL แถวใดที่ WHERE col = NULL คืนมา?

  1. Aไม่มีแถวเลย เพราะการเปรียบเทียบให้ผลไม่ทราบค่า
  2. Bข้อผิดพลาดในทุกฐานข้อมูล
  3. Cเฉพาะแถวที่ col เป็น NULL เช่นเดียวกับ IS NULL
  4. Dทุกแถวของตาราง
7.ยาก

กำหนดการพึ่งพาเชิงฟังก์ชัน A → B, B → C และ C → D บน R(A, B, C, D) ตัวปิด (closure) A+ คืออะไร?

  1. A{A, B, C, D}
  2. B{A, B}
  3. C{A, B, C}
  4. D{A}
8.ยาก

phantom read คืออะไร?

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

เฉลย

  1. 1. C · คอลัมน์ที่อ้างอิงคีย์หลักของอีกตารางหนึ่ง
  2. 2. C · หนึ่งต่อหลาย (one-to-many)
  3. 3. D · INSERT
  4. 4. A · ด้วยตารางเชื่อม (junction table) ที่เก็บคีย์นอกไปยังทั้ง students และ courses
  5. 5. D · ยกเลิกการเปลี่ยนแปลงหลังจุดบันทึก s1 โดยคงทรานแซกชันไว้
  6. 6. A · ไม่มีแถวเลย เพราะการเปรียบเทียบให้ผลไม่ทราบค่า
  7. 7. A · {A, B, C, D}
  8. 8. B · คิวรีซ้ำให้แถวใหม่ที่ทรานแซกชันอื่นที่ commit แล้วแทรกเข้ามา

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