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

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

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

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

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

1.ง่าย

GROUP BY ทำอะไรในคิวรี?

  1. Aจัดแถวที่มีค่าเหมือนกันเป็นกลุ่มเพื่อคำนวณฟังก์ชันรวมค่าต่อกลุ่ม
  2. Bลบแถวที่มีค่า NULL
  3. Cเชื่อมสองตารางด้วยคอลัมน์ร่วมกัน
  4. Dเรียงลำดับแถวของผลลัพธ์ตามตัวอักษร
2.ง่าย

คีย์ผู้สมัคร (candidate key) คืออะไร?

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

ข้อจำกัด UNIQUE บนคอลัมน์รับประกันอะไร?

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

คิวรีใดคืนจำนวนเมืองที่ต่างกันในตาราง customers?

  1. ASELECT COUNT(city) FROM customers GROUP BY city
  2. BSELECT SUM(DISTINCT city) FROM customers
  3. CSELECT DISTINCT COUNT(city) FROM customers
  4. DSELECT COUNT(DISTINCT city) FROM customers
5.ปานกลาง

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

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

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

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

คิวรีต่อไปนี้ให้ผลอะไร: SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?

  1. Aเฉพาะนักเรียนที่มีเกรดสูงสุด
  2. Bเกรดเฉลี่ยของนักเรียนทั้งหมด
  3. Cนักเรียนที่มีเกรดสูงกว่าเกรดเฉลี่ย
  4. Dข้อผิดพลาด เพราะไม่อนุญาตซับคิวรีใน WHERE
8.ยาก

ตารางมีหนึ่งล้านแถวและคอลัมน์บูลีน is_active เป็น TRUE ใน 95% ของแถว เหตุใดตัวปรับแต่งอาจเมินดัชนีบน is_active สำหรับ WHERE is_active = TRUE?

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

เฉลย

  1. 1. A · จัดแถวที่มีค่าเหมือนกันเป็นกลุ่มเพื่อคำนวณฟังก์ชันรวมค่าต่อกลุ่ม
  2. 2. A · ชุดคอลัมน์ที่เล็กที่สุดที่ระบุแต่ละแถวได้อย่างไม่ซ้ำกัน
  3. 3. A · ไม่มีสองแถวใดมีค่าที่ไม่ใช่ NULL เหมือนกันในคอลัมน์นั้น
  4. 4. D · SELECT COUNT(DISTINCT city) FROM customers
  5. 5. B · แถวเก็บทางกายภาพได้เพียงลำดับเดียว
  6. 6. B · ไม่มีแถวเลย เพราะการเปรียบเทียบให้ผลไม่ทราบค่า
  7. 7. C · นักเรียนที่มีเกรดสูงกว่าเกรดเฉลี่ย
  8. 8. A · แถวส่วนใหญ่ตรงเงื่อนไข การสแกนทั้งตารางจึงถูกกว่าการค้นด้วยดัชนีจำนวนมาก

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