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

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

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

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

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

1.ง่าย

ตัวดำเนินการใดใช้จับคู่รูปแบบข้อความอย่างง่ายในอนุประโยค WHERE?

  1. AMATCH
  2. BSIMILAR
  3. CLIKE
  4. DCONTAINS
2.ง่าย

WHERE price BETWEEN 10 AND 20 เลือกแถวใด?

  1. Aเฉพาะแถวที่ price เท่ากับ 10 หรือ 20
  2. Bแถวที่ price ตั้งแต่ 10 ถึง 20 รวม 10 และ 20
  3. Cแถวที่ price อยู่นอกช่วง 10 ถึง 20
  4. Dแถวที่ price มากกว่า 10 และน้อยกว่า 20 โดยไม่รวม 10 และ 20
3.ง่าย

คีย์เวิร์ด SQL ใดลบแถวซ้ำออกจากผลลัพธ์?

  1. AUNIQUE
  2. BDISTINCT
  3. CSINGLE
  4. DDIFFERENT
4.ปานกลาง

คิวรีใดแสดงรายชื่อลูกค้าที่ไม่เคยสั่งซื้อ?

  1. ASELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
5.ปานกลาง

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

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

คีย์นอกถูกประกาศด้วย ON DELETE CASCADE เกิดอะไรขึ้นเมื่อแถวแม่ถูกลบ?

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

ซับคิวรีแบบสัมพันธ์ (correlated subquery) คือซับคิวรีที่:

  1. Aใช้เฉพาะฟังก์ชันรวมค่า
  2. Bอ้างอิงคอลัมน์ของคิวรีด้านนอกและถูกประเมินต่อแถวด้านนอก
  3. Cรันเพียงครั้งเดียวก่อนคิวรีด้านนอกและแคชผลลัพธ์ไว้ใช้กับทุกแถว
  4. Dเชื่อมสองตารางด้วยคีย์นอก
8.ยาก

เหตุใด SELECT dept, name, COUNT(*) FROM emp GROUP BY dept จึงไม่ถูกต้องใน SQL มาตรฐาน?

  1. Adept ต้องอยู่ในฟังก์ชันรวมค่า
  2. Bname ไม่ได้ถูกจัดกลุ่มหรือรวมค่า จึงไม่มีค่าเดียวต่อกลุ่ม
  3. CGROUP BY ต้องระบุทุกคอลัมน์ของตาราง
  4. DCOUNT(*) ใช้ร่วมกับ GROUP BY ไม่ได้

เฉลย

  1. 1. C · LIKE
  2. 2. B · แถวที่ price ตั้งแต่ 10 ถึง 20 รวม 10 และ 20
  3. 3. B · DISTINCT
  4. 4. B · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  5. 5. A · ไม่มีแถวเลย เพราะการเปรียบเทียบให้ผลไม่ทราบค่า
  6. 6. A · แถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
  7. 7. B · อ้างอิงคอลัมน์ของคิวรีด้านนอกและถูกประเมินต่อแถวด้านนอก
  8. 8. B · name ไม่ได้ถูกจัดกลุ่มหรือรวมค่า จึงไม่มีค่าเดียวต่อกลุ่ม

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