Vælg de 10 bedste rækker i SQL

Vaelg De 10 Bedste Raekker I Sql



Når vi arbejder i en SQL-database, kan vi støde på tilfælde, hvor vi skal hente en bestemt delmængde af rækker fra en given tabel. Dette giver os mulighed for at begrænse de nødvendige ressourcer til at hente værdierne fra tabellen.

Heldigvis har vi i SQL adgang til LIMIT-sætningen, som giver os mulighed for at kontrollere antallet af rækker, der returneres inden for et givet resultatsæt. Denne funktion er meget nyttig, når vi har at gøre med et stort datasæt og faktisk ikke har brug for hele rækken, men i stedet for en delmængde af den. Dette kan enten være for at få layoutet af dataene eller præsentationen.

I denne vejledning lærer vi, hvordan vi kan bruge og arbejde med LIMIT-sætningen i SQL-databaser for at angive antallet af rækker, som vi ønsker at hente fra databasen.







Krav:

Før vi dykker ned i LIMIT-klausulens funktion og brug i SQL, lad os diskutere nogle grundlæggende krav til denne øvelse.



For at følge med i dette indlæg skal du have følgende:



  1. MySQL 8.0 og nyere fungerer med MySQL 5
  2. Adgang til Sakila-eksempeldatabasen
  3. Tilladelser til at forespørge rækkerne fra måldatabasen (læseadgang)

Med de givne krav opfyldt, kan vi fortsætte med denne vejledning.





SQL LIMIT

I SQL giver LIMIT-sætningen os mulighed for at begrænse antallet af rækker, der returneres fra en given SQL-forespørgsel. For eksempel, i en select-sætning, i stedet for at returnere alle rækkerne fra tabellen, som kan indeholde over 1000 poster, kan vi vælge kun at se de første 10 rækker.

Det følgende viser den grundlæggende syntaks for LIMIT-udtrykket i SQL:



VÆLG col1, col2, ...

FRA tbl_name

LIMIT num_rows;

I dette eksempel bruger vi LIMIT-sætningen sammen med SELECT-sætningen.

Fra den givne syntaks repræsenterer 'tbl_name' navnet på den tabel, hvorfra vi ønsker at hente dataene.

'num_rows' giver os mulighed for at angive det maksimale antal rækker, der returneres i resultatsættet.

Eksempel 1: Begræns antallet af rækker

Den mest almindelige og grundlæggende rolle for LIMIT-sætningen er at indstille det maksimale antal rækker, der er inkluderet i resultatsættet.

Antag, at vi vil bruge 'film'-tabellen fra Sakila-eksempeldatabasen. Men da vi ikke ønsker at hente alle de tilknyttede rækker, kan vi vælge de første 10 rækker som vist i følgende eksempelklausul:

VÆLG * FRA film

BEGRÆNSE 10 ;

Når vi har kørt den givne forespørgsel, skulle vi få et output som følger:

  Et skærmbillede af en computerbeskrivelse genereret automatisk

I dette eksempel bruger vi LIMIT-sætningen til at begrænse resultatsættet til 10 rækker. Dette henter de første 10 rækker fra resultatet.

Eksempel 2: Brug af OFFSET-værdien

I nogle tilfælde ønsker vi måske at springe over eller udelade et bestemt antal rækker. Antag for eksempel, at vi kun ønsker at hente fem elementer, men vi ønsker at starte ved position 20. Vi kan bruge parameteren OFFSET, som giver os mulighed for at fortælle LIMIT-sætningen, på hvilken position vi ønsker at starte.

Dette er især nyttigt, når du skal implementere pagineringen i et stort datasæt som vist i følgende eksempel:

SELECT film_id, title, release_year, 'længde' FRA film

BEGRÆNSE 10 OFFSET tyve ;;

Dette skulle returnere 10 rækker fra position 20 som følger:

Som du kan se fra det givne resultat, starter start 'film_id' ved position 21 og fortsætter til position 30.

Eksempel 3: Brug af Order BY-klausulen

En anden almindelig brug af LIMIT-klausulen er i kombination med ORDER BY-klausulen. Dette giver os mulighed for at hente et specifikt antal rækker, der er baseret på en bestemt rækkefølge. Dette kan omfatte den grundlæggende sortering (stigende eller faldende) osv.

Antag for eksempel, at vi ønsker at hente de 10 længste film fra 'film'-tabellen. Vi kan bruge ORDER BY-klausulen til at sortere værdierne baseret på længden og derefter begrænse de første 10 rækker.

Et eksempel er som følger:

VÆLG f.film_id, f.title, f.length

FRA film f

BESTILLE EFTER længde DESC

BEGRÆNSE 10 ;

I dette tilfælde bruger vi ORDER BY-klausulen til at bestille rækkerne i faldende rækkefølge (højest til lavest) og henter derefter de første 10 rækker ved hjælp af LIMIT-klausulen.

Resultatsættet er som følger:

  En tabel med en liste Beskrivelse genereret automatisk med middel sikkerhed

Der har du det!

Konklusion

I dette indlæg lærte vi de grundlæggende og avancerede funktioner ved at arbejde med LIMIT-klausulen i SQL-databaser.