Par laimi, SQL mums ir piekļuve LIMIT klauzulai, kas ļauj mums kontrolēt rindu skaitu, kas tiek atgrieztas noteiktā rezultātu kopā. Šī funkcija ir ļoti noderīga, ja mums ir darīšana ar lielu datu kopu un faktiski nav vajadzīga visa rinda, bet gan tās apakškopa. Tas var būt datu vai prezentācijas izkārtojuma iegūšana.
Šajā apmācībā mēs uzzināsim, kā mēs varam izmantot un strādāt ar LIMIT klauzulu SQL datu bāzēs, lai norādītu rindu skaitu, kuras vēlamies izgūt no datu bāzes.
Prasības:
Pirms iedziļināmies LIMIT klauzulas darbībā un lietošanā SQL, apspriedīsim dažas šīs apmācības pamatprasības.
Lai sekotu šai ziņai, jums būs nepieciešams:
- MySQL 8.0 un jaunākas versijas darbojas ar MySQL 5
- Piekļuve Sakila paraugu datubāzei
- Atļaujas vaicāt rindas no mērķa datu bāzes (lasīšanas piekļuve)
Ja ir izpildītas norādītās prasības, mēs varam turpināt šo apmācību.
SQL LIMIT
SQL klauzula LIMIT ļauj ierobežot rindu skaitu, kas tiek atgrieztas no noteiktā SQL vaicājuma. Piemēram, atlases priekšrakstā tā vietā, lai atgrieztu visas tabulas rindas, kurās var būt vairāk nekā 1000 ierakstu, mēs varam izvēlēties skatīt tikai pirmās 10 rindas.
Tālāk ir parādīta LIMIT klauzulas pamata sintakse SQL:
ATLASĪT 1. kolonnu, 2. kolonnu, ...
NO tbl_name
LIMIT rindu_skaits;
Šajā piemērā mēs izmantojam LIMIT klauzulu kopā ar SELECT priekšrakstu.
No dotās sintakses “tbl_name” apzīmē tās tabulas nosaukumu, no kuras mēs vēlamies izgūt datus.
“Num_rows” ļauj mums norādīt maksimālo rindu skaitu, kas tiek atgrieztas rezultātu kopā.
1. piemērs: ierobežojiet rindu skaitu
Visizplatītākā un svarīgākā LIMIT klauzulas loma ir iestatīt maksimālo rezultātu kopā iekļauto rindu skaitu.
Pieņemsim, ka mēs vēlamies izmantot tabulu “filma” no Sakila paraugu datu bāzes. Tomēr, tā kā mēs nevēlamies ienest visas saistītās rindas, mēs varam atlasīt pirmās 10 rindas, kā parādīts šajā piemērā:
IZVĒLĒTIES * NO filmasLIMIT 10 ;
Kad mēs palaižam doto vaicājumu, mums vajadzētu iegūt šādu izvadi:
Šajā piemērā mēs izmantojam klauzulu LIMIT, lai ierobežotu rezultātu kopu līdz 10 rindām. Tādējādi tiek iegūtas pirmās 10 rindas no rezultāta.
2. piemērs: OFFSET vērtības izmantošana
Dažos gadījumos mēs varam vēlēties izlaist vai izlaist noteiktu rindu skaitu. Piemēram, pieņemsim, ka mēs vēlamies izgūt tikai piecus elementus, bet mēs vēlamies sākt no 20. pozīcijas. Mēs varam izmantot parametru OFFSET, kas ļauj mums norādīt LIMIT klauzulai, kurā pozīcijā mēs vēlamies sākt.
Tas ir īpaši noderīgi, ja ir jāievieš lappušu kārtošana lielā datu kopā, kā parādīts šajā piemērā:
ATLASĪT filmas_id, nosaukumu, izlaiduma_gadu, `garumu` NO filmasLIMIT 10 OFFSET divdesmit ;;
Tam ir jāatgriež 10 rindas, sākot no 20. pozīcijas šādi:
Kā redzams no dotā rezultāta, starts “film_id” sākas no 21. pozīcijas un turpinās uz 30. pozīciju.
3. piemērs: Pasūtījuma BY klauzula izmantošana
Vēl viens izplatīts LIMIT klauzulas lietojums ir kombinācijā ar klauzulu ORDER BY. Tas ļauj mums izgūt noteiktu skaitu rindu, kuru pamatā ir noteikts pasūtījums. Tas var ietvert pamata kārtošanu (augošā vai dilstošā secībā) utt.
Piemēram, pieņemsim, ka mēs vēlamies izgūt 10 populārākās filmas no “filmu” tabulas. Mēs varam izmantot klauzulu ORDER BY, lai kārtotu vērtības, pamatojoties uz garumu, un pēc tam ierobežotu pirmās 10 rindas.
Piemērs ir šāds:
SELECT f.film_id, f.title, f.lengthNO filmas f
PASŪTĪT PĒC garuma DESC
LIMIT 10 ;
Šajā gadījumā mēs izmantojam klauzulu ORDER BY, lai sakārtotu rindas dilstošā secībā (no augstākās līdz zemākajai) un pēc tam izgūtu pirmās 10 rindas, izmantojot LIMIT klauzulu.
Rezultātu komplekts ir šāds:
Tur jums tas ir!
Secinājums
Šajā ziņojumā mēs uzzinājām pamatprincipus un papildu funkcijas darbam ar LIMIT klauzulu SQL datu bāzēs.