แถวจำกัดของ Oracle

Thaew Cakad Khxng Oracle



การจำกัดแถวเป็นคุณลักษณะทั่วไปที่มีประสิทธิภาพซึ่งใช้งานโดยเอ็นจินฐานข้อมูลเชิงสัมพันธ์ส่วนใหญ่ การจำกัดแถวหมายถึงจำนวนแถวที่คำสั่ง SQL SELECT สามารถส่งคืนได้

ในกรณีส่วนใหญ่ กลไกจัดการฐานข้อมูลจะกำหนดจำนวนสูงสุดของขีดจำกัด อย่างไรก็ตาม เราสามารถแทนที่ค่านี้ในแบบสอบถามของเราได้โดยใช้เทคนิคต่างๆ ก่อนที่จะเปลี่ยนจำนวนแถวที่ส่งคืนโดยคำสั่ง SQL SELECT คุณควรพิจารณาทรัพยากรที่มีอยู่ในระบบของคุณก่อน







การจำกัดแถวเป็นคุณลักษณะที่มีค่าด้วยเหตุผลหลายประการ ประการแรก ช่วยป้องกันไม่ให้การสืบค้นส่งคืนข้อมูลจำนวนมากเกินไป ซึ่งสามารถใช้ทรัพยากรอันมีค่าจนหมดและทำให้เกิดปัญหาด้านประสิทธิภาพ



ประการที่สอง สามารถช่วยป้องกันการโจมตีด้วยการฉีด SQL ได้โดยการจำกัดจำนวนข้อมูลที่ผู้โจมตีสามารถแยกออกจากฐานข้อมูลได้



โพสต์นี้จะกล่าวถึงรูปแบบสั้นๆ สำหรับการจำกัดจำนวนระเบียนที่ส่งคืนจากแบบสอบถาม Oracle ที่กำหนด โปรดจำไว้ว่าไม่มี LIMIT clause ในฐานข้อมูล Oracle เหมือนที่คุณพบในฐานข้อมูลอื่นๆ เช่น MySQL, PostgreSQL เป็นต้น





ออราเคิล ROWNUM

เพื่อให้เราใช้คำสั่งที่เหมือนลิมิต เราใช้ฟังก์ชัน rownum ใน SQL ฟังก์ชันนี้ส่งคืนจำนวนแถวในผลลัพธ์ที่กำหนด

ตัวอย่างการใช้งาน:

สมมติว่าเรามีตารางที่มีข้อมูลฐานข้อมูลดังภาพต่อไปนี้:



ปัญหา:

สมมติว่าเราสนใจเฉพาะห้าแถวแรกจากตาราง

สารละลาย:

เราสามารถใช้แบบสอบถามตามที่แสดงในตัวอย่างต่อไปนี้:

เลือก * จากฐานข้อมูลโดยที่ ROWNUM <= 5;

ในการค้นหาก่อนหน้านี้ เรากำหนดคำสั่งแบบมีเงื่อนไขซึ่งช่วยให้แน่ใจว่าจำนวนแถวที่ส่งคืนน้อยกว่าหรือเท่ากับ 5 ซึ่งจะบังคับให้จำนวนระเบียนจากการค้นหาหยุดที่ห้า

เอาต์พุตตัวอย่างเป็นดังนี้:

บทสรุป

ฟังก์ชัน Oracle ROWNUM เป็นเครื่องมือที่มีประสิทธิภาพในการจำกัดจำนวนแถวที่ส่งคืนในการสืบค้น Oracle SQL สามารถใช้ในวิธีต่างๆ เพื่อควบคุมจำนวนแถวที่ส่งคืนโดยแบบสอบถาม และทำให้แน่ใจว่ามีการส่งคืนเฉพาะข้อมูลที่เกี่ยวข้องมากที่สุดเท่านั้น