Sa kabutihang palad, sa SQL, mayroon kaming access sa LIMIT clause na nagbibigay-daan sa amin na kontrolin ang bilang ng mga row na ibinalik sa loob ng ibinigay na set ng resulta. Ang feature na ito ay lubhang kapaki-pakinabang kapag tayo ay nakikitungo sa isang malaking set ng data at hindi talaga kailangan ang buong row ngunit sa halip ay isang subset nito. Ito ay maaaring alinman sa pagkuha ng layout ng data o pagtatanghal.
Sa tutorial na ito, malalaman natin kung paano natin magagamit at gagana ang LIMIT clause sa mga database ng SQL upang tukuyin ang bilang ng mga row na gusto nating makuha mula sa database.
Mga kinakailangan:
Bago tayo sumisid sa mga gawain at paggamit ng LIMIT clause sa SQL, talakayin natin ang ilang pangunahing kinakailangan para sa tutorial na ito.
Upang masundan ang post na ito, kakailanganin mo ang sumusunod:
- Gumagana ang MySQL 8.0 at mas mataas sa MySQL 5
- Access sa Sakila sample database
- Mga pahintulot na i-query ang mga row mula sa target na database (read access)
Sa ibinigay na mga kinakailangan, maaari tayong magpatuloy sa tutorial na ito.
SQL LIMIT
Sa SQL, ang LIMIT clause ay nagbibigay-daan sa amin na paghigpitan ang bilang ng mga row na ibinalik mula sa isang ibinigay na SQL query. Halimbawa, sa isang piling pahayag, sa halip na ibalik ang lahat ng mga hilera mula sa talahanayan na maaaring naglalaman ng higit sa 1000 mga tala, maaari naming piliing tingnan lamang ang unang 10 mga hilera.
Ipinapakita ng sumusunod ang pangunahing syntax ng LIMIT clause sa SQL:
PUMILI ng col1, col2, ...
MULA tbl_name
LIMIT num_rows;
Sa halimbawang ito, ginagamit namin ang LIMIT clause kasabay ng SELECT statement.
Mula sa ibinigay na syntax, ang 'tbl_name' ay kumakatawan sa pangalan ng talahanayan kung saan nais naming kunin ang data.
Ang 'num_rows' ay nagbibigay-daan sa amin na tukuyin ang maximum na bilang ng mga row na ibinalik sa set ng resulta.
Halimbawa 1: Limitahan ang Bilang ng Mga Row
Ang pinakakaraniwan at pangunahing tungkulin ng LIMIT clause ay ang itakda ang maximum na bilang ng mga row na kasama sa set ng resulta.
Ipagpalagay na gusto naming gamitin ang talahanayan ng 'pelikula' mula sa Sakila sample database. Gayunpaman, dahil hindi namin gustong kunin ang lahat ng nauugnay na row, maaari naming piliin ang unang 10 row gaya ng ipinapakita sa sumusunod na halimbawang sugnay:
PUMILI * MULA sa pelikulaLIMIT 10 ;
Sa sandaling patakbuhin namin ang ibinigay na query, dapat kaming makakuha ng isang output tulad ng sumusunod:
Sa halimbawang ito, ginagamit namin ang LIMIT clause upang paghigpitan ang resulta na itinakda sa 10 row. Kinukuha nito ang unang 10 row mula sa resulta.
Halimbawa 2: Paggamit ng OFFSET Value
Sa ilang mga kaso, maaaring gusto naming laktawan o alisin ang isang partikular na bilang ng mga row. Halimbawa, ipagpalagay na nais naming makuha lamang ang limang elemento, ngunit gusto naming magsimula sa posisyon 20. Magagamit namin ang OFFSET parameter na nagpapahintulot sa amin na sabihin ang LIMIT clause kung saang posisyon namin gustong magsimula.
Ito ay partikular na kapaki-pakinabang kapag kailangan mong ipatupad ang pagination sa isang malaking dataset tulad ng ipinapakita sa sumusunod na halimbawa:
PUMILI ng film_id, pamagat, release_year, `length` MULA sa pelikulaLIMIT 10 OFFSET dalawampu ;;
Dapat itong magbalik ng 10 row simula sa posisyon 20 gaya ng sumusunod:
Tulad ng makikita mo mula sa ibinigay na resulta, ang simula ng 'film_id' ay magsisimula sa posisyon 21 at magpapatuloy sa posisyon 30.
Halimbawa 3: Paggamit ng Order BY Clause
Ang isa pang karaniwang paggamit ng LIMIT clause ay kasama ng ORDER BY clause. Nagbibigay-daan ito sa amin na makuha ang partikular na bilang ng mga row na nakabatay sa isang partikular na pagkakasunud-sunod. Maaaring kabilang dito ang pangunahing pag-uuri (pataas o pababa), atbp.
Halimbawa, ipagpalagay na gusto naming kunin ang nangungunang 10 pinakamahabang pelikula mula sa talahanayan ng 'pelikula'. Maaari naming gamitin ang ORDER BY clause para pagbukud-bukurin ang mga value batay sa haba at pagkatapos ay limitahan ang unang 10 row.
Ang isang halimbawa ay ang sumusunod:
PUMILI f.film_id, f.title, f.lengthMULA sa pelikula f
ORDER SA haba DESC
LIMIT 10 ;
Sa kasong ito, ginagamit namin ang ORDER BY clause para i-order ang mga row sa pababang pagkakasunud-sunod (pinakamataas hanggang pinakamababa) at pagkatapos ay kunin ang unang 10 row gamit ang LIMIT clause.
Ang set ng resulta ay ang mga sumusunod:
Ayan na!
Konklusyon
Sa post na ito, natutunan namin ang mga pangunahing kaalaman at advanced na tampok ng pagtatrabaho sa LIMIT clause sa mga database ng SQL.