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

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

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

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

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

1.ง่าย

คำสั่ง SQL ใดดึงข้อมูลจากตาราง?

  1. ACREATE
  2. BSELECT
  3. CUPDATE
  4. DINSERT
2.ง่าย

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

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

COMMIT ทำอะไรในทรานแซกชัน?

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

เหตุใดจึงสร้างดัชนี (index) บนคอลัมน์?

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

คิวรีใดคืนจำนวนคำสั่งซื้อต่อลูกค้า?

  1. ASELECT DISTINCT COUNT(*) FROM orders
  2. BSELECT customer_id FROM orders WHERE COUNT(*) > 0
  3. CSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  4. DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
6.ปานกลาง

EXCEPT (เรียก MINUS ใน Oracle) คืนอะไร?

  1. Aแถวของคิวรีแรกที่ไม่ปรากฏในคิวรีที่สอง
  2. Bแถวที่ปรากฏในทั้งสองคิวรี
  3. Cแถวของคิวรีที่สองที่ไม่ปรากฏในคิวรีแรก
  4. Dทุกแถวจากทั้งสองคิวรีโดยไม่ซ้ำ
7.ยาก

ระดับการแยกส่วน (isolation level) ใดป้องกัน dirty read แต่ยังอนุญาต non-repeatable read?

  1. ASerializable
  2. BRead committed
  3. CRepeatable read
  4. DRead uncommitted
8.ยาก

SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp คืนอะไร?

  1. Aเฉพาะพนักงานที่ได้มากกว่าค่าเฉลี่ยของแผนก
  2. Bข้อผิดพลาด เพราะ name ไม่อยู่ใน GROUP BY
  3. Cทุกแถวพนักงานพร้อมเงินเดือนเฉลี่ยของแผนกตน
  4. Dหนึ่งแถวต่อแผนกพร้อมเงินเดือนเฉลี่ย

เฉลย

  1. 1. B · SELECT
  2. 2. C · ตัวระบุที่สร้างขึ้นซึ่งไม่มีความหมายทางธุรกิจ เช่น id ที่เพิ่มอัตโนมัติ
  3. 3. D · ทำให้การเปลี่ยนแปลงทั้งหมดของทรานแซกชันถาวร
  4. 4. A · เพื่อเร่งการค้นหาและการเชื่อมบนคอลัมน์เหล่านั้น
  5. 5. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  6. 6. A · แถวของคิวรีแรกที่ไม่ปรากฏในคิวรีที่สอง
  7. 7. B · Read committed
  8. 8. C · ทุกแถวพนักงานพร้อมเงินเดือนเฉลี่ยของแผนกตน

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