Heldigvis har vi i SQL tilgang til LIMIT-klausulen som lar oss kontrollere antall rader som returneres innenfor et gitt resultatsett. Denne funksjonen er veldig nyttig når vi har å gjøre med et stort datasett og faktisk ikke trenger hele raden, men i stedet en delmengde av den. Dette kan enten være for å få utformingen av dataene eller presentasjonen.
I denne opplæringen lærer vi hvordan vi kan bruke og jobbe med LIMIT-klausulen i SQL-databaser for å spesifisere antall rader vi ønsker å hente fra databasen.
Krav:
Før vi dykker ned i virkemåten og bruken av LIMIT-klausulen i SQL, la oss diskutere noen grunnleggende krav for denne opplæringen.
For å følge med på dette innlegget, trenger du følgende:
- MySQL 8.0 og nyere fungerer med MySQL 5
- Tilgang til Sakila-eksempeldatabasen
- Tillatelser til å spørre radene fra måldatabasen (lesetilgang)
Med de gitte kravene oppfylt, kan vi fortsette med denne opplæringen.
SQL GRENSE
I SQL lar LIMIT-klausulen oss begrense antall rader som returneres fra en gitt SQL-spørring. For eksempel, i en select-setning, i stedet for å returnere alle radene fra tabellen som kan inneholde over 1000 poster, kan vi velge å kun vise de første 10 radene.
Følgende viser den grunnleggende syntaksen til LIMIT-leddet i SQL:
VELG kol1, kol2, ...
FRA tbl_name
LIMIT antall_rader;
I dette eksemplet bruker vi LIMIT-leddet sammen med SELECT-setningen.
Fra den gitte syntaksen representerer 'tbl_name' navnet på tabellen som vi ønsker å hente dataene fra.
'num_rows' lar oss spesifisere maksimalt antall rader som returneres i resultatsettet.
Eksempel 1: Begrens antall rader
Den vanligste og grunnleggende rollen til LIMIT-klausulen er å angi maksimalt antall rader som er inkludert i resultatsettet.
Anta at vi ønsker å bruke 'film'-tabellen fra Sakila-eksempeldatabasen. Men siden vi ikke ønsker å hente alle de tilknyttede radene, kan vi velge de første 10 radene som vist i følgende eksempelklausul:
VELG * FRA filmenGRENSE 10 ;
Når vi kjører den gitte spørringen, bør vi få en utdata som følger:
I dette eksemplet bruker vi LIMIT-leddet for å begrense resultatsettet til 10 rader. Dette henter de første 10 radene fra resultatet.
Eksempel 2: Bruk av OFFSET-verdien
I noen tilfeller vil vi kanskje hoppe over eller utelate et spesifikt antall rader. Anta for eksempel at vi ønsker å hente bare fem elementer, men vi ønsker å starte på posisjon 20. Vi kan bruke OFFSET-parameteren som lar oss fortelle LIMIT-leddet på hvilken posisjon vi ønsker å starte.
Dette er spesielt nyttig når du trenger å implementere pagineringen i et stort datasett som vist i følgende eksempel:
SELECT film_id, title, release_year, `length` FROM filmGRENSE 10 OFFSET tjue ;;
Dette skal returnere 10 rader fra posisjon 20 som følger:
Som du kan se fra det gitte resultatet, starter 'film_id' ved posisjon 21 og fortsetter til posisjon 30.
Eksempel 3: Bruk av Order BY-klausulen
En annen vanlig bruk av LIMIT-klausulen er i kombinasjon med ORDER BY-klausulen. Dette lar oss hente spesifikt antall rader som er basert på en bestemt rekkefølge. Dette kan inkludere grunnleggende sortering (stigende eller synkende), etc.
Anta for eksempel at vi ønsker å hente de 10 lengste filmene fra 'film'-tabellen. Vi kan bruke ORDER BY-leddet til å sortere verdiene basert på lengden og deretter begrense de 10 første radene.
Et eksempel er som følger:
VELG f.film_id, f.title, f.lengthFRA film f
REKKEFØLGE ETTER lengde DES
GRENSE 10 ;
I dette tilfellet bruker vi ORDER BY-leddet for å bestille radene i synkende rekkefølge (høyest til lavest) og henter deretter de første 10 radene ved å bruke LIMIT-leddet.
Resultatsettet er som følger:
Der har du det!
Konklusjon
I dette innlegget lærte vi grunnleggende og avanserte funksjoner ved å jobbe med LIMIT-klausulen i SQL-databaser.