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

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

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

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

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

1.ง่าย

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

  1. ASELECT
  2. BALTER
  3. CINSERT
  4. DUPDATE
2.ง่าย

ข้อจำกัด (constraint) ใดรับรองว่าคอลัมน์ไม่มีทางเว้นว่าง (NULL)?

  1. ACHECK NULL
  2. BDEFAULT
  3. CUNIQUE
  4. DNOT NULL
3.ง่าย

คีย์แทน (surrogate key) คืออะไร?

  1. Aคีย์ที่สร้างจากข้อมูลจริง เช่น อีเมล
  2. Bตัวระบุที่สร้างขึ้นซึ่งไม่มีความหมายทางธุรกิจ เช่น id ที่เพิ่มอัตโนมัติ
  3. Cคีย์ที่ใช้เฉพาะในวิว
  4. Dคีย์ที่อ้างอิงอีกตารางหนึ่ง
4.ปานกลาง

เหตุใดตารางจึงมีดัชนีคลัสเตอร์ได้เพียงหนึ่งดัชนี?

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

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

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

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

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

ข้อเสียที่รู้จักของการแยกตารางเป็น BCNF เมื่อเทียบกับ 3NF คืออะไร?

  1. Aการพึ่งพาเชิงฟังก์ชันบางอย่างอาจตรวจสอบภายในตารางเดียวไม่ได้อีกต่อไป
  2. Bตาราง BCNF มีคีย์หลักไม่ได้
  3. Cการแยกทำให้ข้อมูลหายเสมอเมื่อเชื่อมกลับ
  4. DBCNF ยอมให้มีความซ้ำซ้อนมากกว่า 3NF
8.ยาก

มีดัชนีประกอบบน (last_name, first_name) เงื่อนไขใดใช้ดัชนีนี้ได้อย่างมีประสิทธิภาพที่สุด?

  1. AWHERE last_name = 'Jansen'
  2. BWHERE UPPER(first_name) = 'EVA'
  3. CWHERE first_name = 'Eva'
  4. DWHERE first_name LIKE '%a'

เฉลย

  1. 1. C · INSERT
  2. 2. D · NOT NULL
  3. 3. B · ตัวระบุที่สร้างขึ้นซึ่งไม่มีความหมายทางธุรกิจ เช่น id ที่เพิ่มอัตโนมัติ
  4. 4. A · แถวเก็บทางกายภาพได้เพียงลำดับเดียว
  5. 5. B · การพึ่งพาแบบถ่ายทอดระหว่างแอตทริบิวต์ที่ไม่ใช่คีย์
  6. 6. D · ด้วยตารางเชื่อม (junction table) ที่เก็บคีย์นอกไปยังทั้ง students และ courses
  7. 7. A · การพึ่งพาเชิงฟังก์ชันบางอย่างอาจตรวจสอบภายในตารางเดียวไม่ได้อีกต่อไป
  8. 8. A · WHERE last_name = 'Jansen'

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