แบบสอบถามย่อยหรือที่เรียกว่าแบบสอบถามแบบซ้อนหรือแบบสอบถามภายในเป็นแบบสอบถาม SQL ที่ฝังอยู่ภายในแบบสอบถามขนาดใหญ่อื่นในบริบทของฐานข้อมูลเชิงสัมพันธ์ แบบสอบถามย่อยอำนวยความสะดวกในการดำเนินการเรียกข้อมูลที่ซับซ้อนและให้ความยืดหยุ่นมากขึ้นในการสืบค้น การกรอง และการเรียงลำดับข้อมูลโดยใช้ประโยชน์จากผลลัพธ์ของการสืบค้นอื่นๆ คิวรีย่อยจะอยู่ในวงเล็บและสามารถปรากฏในส่วนต่างๆ ของคิวรี SQL ที่มีขนาดใหญ่กว่าได้ รวมถึงส่วนคำสั่ง SELECT, FROM, WHERE และ HAVING
โดยทั่วไปแบบสอบถามย่อยจะใช้ในสถานการณ์ที่จำเป็นต้องทำการคำนวณขั้นกลางหรือกรองข้อมูลตามผลลัพธ์ของแบบสอบถามอื่น ในขอบเขตของฐานข้อมูลเชิงสัมพันธ์ คิวรีย่อยมักจำเป็นสำหรับการเข้าถึงข้อมูลที่กระจายไปทั่วตารางต่างๆ โดยเฉพาะอย่างยิ่งเมื่อข้อมูลเหล่านี้ขึ้นอยู่กับความสัมพันธ์และข้อจำกัดต่างๆ
มีแบบสอบถามย่อยหลายประเภทที่สามารถใช้ได้ ขึ้นอยู่กับข้อกำหนดเฉพาะของสถานการณ์ที่กำหนด ซึ่งรวมถึง:
- แบบสอบถามย่อยแบบสเกลาร์: ส่งกลับค่าเดียว
- แบบสอบถามย่อยของคอลัมน์: ส่งคืนค่าคอลัมน์เดียว
- แบบสอบถามย่อยของแถว: ส่งกลับข้อมูลแถวเดียว
- แบบสอบถามย่อยของตาราง: ส่งกลับตารางข้อมูลทั้งหมด
ข้อความค้นหาย่อยสามารถแบ่งออกเป็นสองประเภทตามพฤติกรรม:
- แบบสอบถามย่อยที่สัมพันธ์กัน: แบบสอบถามย่อยที่ขึ้นอยู่กับค่าจากการสืบค้นภายนอก และดำเนินการหนึ่งครั้งสำหรับแต่ละแถวในแบบสอบถามภายนอก
- แบบสอบถามย่อยที่ไม่เกี่ยวข้อง: แบบสอบถามย่อยที่สามารถรันได้อย่างอิสระจากแบบสอบถามภายนอก โดยส่งคืนผลลัพธ์เดียวที่แบบสอบถามภายนอกสามารถใช้ได้
เมื่อใช้แบบสอบถามย่อย การพิจารณาถึงผลกระทบด้านประสิทธิภาพเป็นสิ่งสำคัญ เนื่องจากชุดข้อมูลขนาดใหญ่และความสัมพันธ์ที่ซับซ้อนอาจทำให้เกิดค่าใช้จ่ายในการคำนวณมากเกินไปและประสิทธิภาพการค้นหาที่ช้า เพื่อเพิ่มประสิทธิภาพการค้นหาย่อย นักพัฒนาสามารถใช้ประโยชน์จากดัชนี ใช้คำแนะนำในการสืบค้น และใช้เทคนิคการปรับแต่งประสิทธิภาพอื่นๆ เช่น การแคชและการแบ่งหน้า การใช้แบบสอบถามย่อยอย่างเหมาะสมสามารถเพิ่มความยืดหยุ่นและความชัดเจนของแบบสอบถาม SQL ได้อย่างมาก ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่มีประสิทธิภาพและซับซ้อนมากขึ้นได้
ที่ AppMaster ซึ่งเป็นแพลตฟอร์ม no-code สำหรับการสร้างแบ็กเอนด์ เว็บ และแอปพลิเคชันมือถือ ความสำคัญของแบบสอบถามย่อยในฐานข้อมูลเชิงสัมพันธ์ได้รับการยอมรับและรวมไว้ในกระบวนการออกแบบ ด้วยการใช้โมเดลข้อมูลภาพและผู้ออกแบบกระบวนการทางธุรกิจของ AppMaster ผู้ใช้สามารถสร้างการสืบค้น SQL ที่ซับซ้อนซึ่งรวมถึงการสืบค้นย่อยได้อย่างง่ายดาย ปรับแต่งแอปพลิเคชันอย่างละเอียดเพื่อดึงและประมวลผลข้อมูลในลักษณะที่มีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้
ตามตัวอย่าง ให้พิจารณาสถานการณ์ที่ผู้ใช้ต้องการดึงข้อมูลรายชื่อลูกค้าที่ทำคำสั่งซื้ออย่างน้อยหนึ่งรายการภายในเดือนที่ผ่านมา เมื่อใช้แบบสอบถามย่อย นักพัฒนาสามารถสร้างแบบสอบถาม SQL ที่จะดึงข้อมูลคำสั่งซื้อทั้งหมดที่วางไว้ภายในเดือนที่แล้วได้อย่างง่ายดาย จากนั้นจึงใช้ผลลัพธ์นี้เป็นตัวกรองเพื่อรับข้อมูลลูกค้าที่เกี่ยวข้อง
เลือก * จากลูกค้า รหัสอยู่ที่ไหน ( เลือกรหัสลูกค้า จากคำสั่งซื้อ โดยที่ order_date >= DATEADD(เดือน, -1, GETDATE()) );
การสืบค้นนี้แสดงให้เห็นถึงประสิทธิภาพของการสืบค้นย่อยในการเปิดใช้งานการดำเนินการเรียกข้อมูลที่ซับซ้อนและการปรับกระบวนการสืบค้นให้เหมาะสม ด้วยการใช้ประโยชน์จากแบบสอบถามย่อย นักพัฒนาสามารถออกแบบแอปพลิเคชันที่ตรงกับความต้องการของผู้ใช้ ปฏิบัติตามกฎเกณฑ์ทางธุรกิจ และโต้ตอบกับฐานข้อมูลเชิงสัมพันธ์ที่เกี่ยวข้องได้อย่างมีประสิทธิภาพมากขึ้น
โดยสรุป แบบสอบถามย่อยเป็นส่วนสำคัญของการสืบค้น SQL ในบริบทของฐานข้อมูลเชิงสัมพันธ์ ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่มีประสิทธิภาพและยืดหยุ่นมากขึ้น ด้วยแพลตฟอร์ม no-code อย่าง AppMaster นักพัฒนาสามารถออกแบบโมเดลข้อมูลและกระบวนการทางธุรกิจของตนด้วยภาพได้ ในขณะเดียวกันก็สร้างแอปพลิเคชันโดยอัตโนมัติที่ใช้ความสามารถของแบบสอบถามย่อยในการดึงข้อมูลและดำเนินการประมวลผลได้อย่างเต็มที่ ด้วยการเรียนรู้แบบสอบถามย่อย นักพัฒนาสามารถปลดล็อกศักยภาพของฐานข้อมูลเชิงสัมพันธ์ได้เต็มรูปแบบ นำเสนอโซลูชันซอฟต์แวร์ที่มีประสิทธิภาพ ปรับขนาดได้ และซับซ้อน ซึ่งปรับให้เหมาะกับความต้องการเฉพาะของลูกค้า