เลือก 10 แถวแรกใน SQL

Leuxk 10 Thaew Raek Ni Sql



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

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

ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้และทำงานกับส่วนคำสั่ง LIMIT ในฐานข้อมูล SQL เพื่อระบุจำนวนแถวที่เราต้องการดึงจากฐานข้อมูล







ความต้องการ:

ก่อนที่เราจะเจาะลึกการทำงานและการใช้งานคำสั่งย่อย LIMIT ใน SQL ให้เราหารือเกี่ยวกับข้อกำหนดพื้นฐานบางประการสำหรับบทช่วยสอนนี้



หากต้องการติดตามโพสต์นี้ คุณจะต้องมีสิ่งต่อไปนี้:



  1. MySQL 8.0 ขึ้นไปใช้งานได้กับ MySQL 5
  2. เข้าถึงฐานข้อมูลตัวอย่าง Sakila
  3. สิทธิ์ในการสืบค้นแถวจากฐานข้อมูลเป้าหมาย (การเข้าถึงแบบอ่าน)

เมื่อมีคุณสมบัติตรงตามข้อกำหนดแล้ว เราก็สามารถดำเนินการตามบทแนะนำนี้ได้





ขีดจำกัด SQL

ใน SQL ส่วนคำสั่ง LIMIT อนุญาตให้เราจำกัดจำนวนแถวที่ส่งคืนจากการสืบค้น SQL ที่กำหนด ตัวอย่างเช่น ในคำสั่ง select แทนที่จะส่งคืนแถวทั้งหมดจากตารางซึ่งอาจมีมากกว่า 1,000 เรคคอร์ด เราสามารถเลือกดูเฉพาะ 10 แถวแรกได้

ข้อมูลต่อไปนี้แสดงไวยากรณ์พื้นฐานของส่วนคำสั่ง LIMIT ใน SQL:



เลือก col1, col2, ...

จาก tbl_name

จำกัด num_rows;

ในตัวอย่างนี้ เรากำลังใช้คำสั่งย่อย LIMIT ร่วมกับคำสั่ง SELECT

จากไวยากรณ์ที่กำหนด “tbl_name” หมายถึงชื่อของตารางที่เราต้องการดึงข้อมูล

“num_rows” ช่วยให้เราสามารถระบุจำนวนแถวสูงสุดที่ส่งคืนในชุดผลลัพธ์

ตัวอย่างที่ 1: จำกัดจำนวนแถว

บทบาททั่วไปและเป็นพื้นฐานที่สุดของส่วนคำสั่ง LIMIT คือการตั้งค่าจำนวนแถวสูงสุดที่รวมอยู่ในชุดผลลัพธ์

สมมติว่าเราต้องการใช้ตาราง “ฟิล์ม” จากฐานข้อมูลตัวอย่างสกิลา อย่างไรก็ตาม เนื่องจากเราไม่ต้องการดึงข้อมูลแถวที่เกี่ยวข้องทั้งหมด เราจึงสามารถเลือก 10 แถวแรกตามที่แสดงในตัวอย่างประโยคต่อไปนี้:

SELECT * จากฟิล์ม

จำกัด 10 -

เมื่อเรารันการสืบค้นที่กำหนดแล้ว เราควรจะได้ผลลัพธ์ดังนี้:

  ภาพหน้าจอของคำอธิบายคอมพิวเตอร์ที่สร้างขึ้นโดยอัตโนมัติ

ในตัวอย่างนี้ เราใช้ส่วนคำสั่ง LIMIT เพื่อจำกัดชุดผลลัพธ์ไว้ที่ 10 แถว ซึ่งจะดึงข้อมูล 10 แถวแรกจากผลลัพธ์

ตัวอย่างที่ 2: การใช้ค่า OFFSET

ในบางกรณี เราอาจต้องการข้ามหรือละเว้นแถวจำนวนหนึ่ง ตัวอย่างเช่น สมมติว่าเราต้องการดึงองค์ประกอบเพียงห้าองค์ประกอบ แต่เราต้องการเริ่มต้นที่ตำแหน่ง 20 เราสามารถใช้พารามิเตอร์ OFFSET ซึ่งช่วยให้เราบอก LIMIT clause ว่าเราต้องการเริ่มต้นตำแหน่งใด

สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณต้องการใช้การแบ่งหน้าในชุดข้อมูลขนาดใหญ่ดังที่แสดงในตัวอย่างต่อไปนี้:

เลือก film_id, ชื่อ, release_year, `ความยาว` จากภาพยนตร์

จำกัด 10 ชดเชย ยี่สิบ -

สิ่งนี้ควรส่งคืน 10 แถวโดยเริ่มจากตำแหน่ง 20 ดังนี้:

ดังที่คุณเห็นจากผลลัพธ์ที่กำหนด การเริ่มต้น “film_id” เริ่มต้นที่ตำแหน่ง 21 และดำเนินต่อไปยังตำแหน่ง 30

ตัวอย่างที่ 3: การใช้คำสั่งซื้อตามข้อ

การใช้งานทั่วไปอีกอย่างหนึ่งของคำสั่งย่อย LIMIT คือการใช้ร่วมกับคำสั่งย่อย ORDER BY สิ่งนี้ช่วยให้เราดึงข้อมูลจำนวนแถวเฉพาะที่อิงตามลำดับเฉพาะได้ ซึ่งอาจรวมถึงการเรียงลำดับพื้นฐาน (จากน้อยไปหามากหรือจากมากไปน้อย) ฯลฯ

ตัวอย่างเช่น สมมติว่าเราต้องการดึงภาพยนตร์ที่ยาวที่สุด 10 อันดับแรกจากตาราง 'ภาพยนตร์' เราสามารถใช้คำสั่งย่อย ORDER BY เพื่อเรียงลำดับค่าตามความยาว จากนั้นจำกัด 10 แถวแรก

ตัวอย่างมีดังนี้:

เลือก f.film_id, f.title, f.length

จากภาพยนตร์ฉ

คำสั่ง ตามความยาว DESC

จำกัด 10 -

ในกรณีนี้ เราใช้คำสั่งย่อย ORDER BY เพื่อเรียงลำดับแถวจากมากไปน้อย (จากมากไปน้อย) จากนั้นดึงข้อมูล 10 แถวแรกโดยใช้คำสั่งย่อย LIMIT

ชุดผลลัพธ์จะเป็นดังนี้:

  ตารางคำอธิบายรายการที่สร้างขึ้นโดยอัตโนมัติด้วยความมั่นใจปานกลาง

ได้แล้ว!

บทสรุป

ในโพสต์นี้ เราได้เรียนรู้พื้นฐานและคุณลักษณะขั้นสูงของการทำงานกับส่วนคำสั่ง LIMIT ในฐานข้อมูล SQL