Datasortering kommer i spil i scenarier, hvor du skal organisere dataene i en bestemt rækkefølge, hvilket er nyttigt til datavisualisering, indsamling af dataindsigt og mere. Det gør også processen med at hente, rense og analysere dataene meget nemmere.
I SQL har vi ORDER BY-sætningen, som giver os funktionaliteten til at sortere dataene i stigende eller faldende rækkefølge.
I denne øvelse lærer vi, hvordan du sorterer dataene i stigende rækkefølge ved hjælp af ORDER BY og ASC nøgleordet.
BEMÆRK: Til demonstrationsformål vil vi bruge Sakila-eksempeldatabasen og MySQL version 8.0. Du er velkommen til at henvise til og bruge ethvert datasæt, som du finder relevant.
SQL stigende rækkefølge
Den stigende rækkefølge i SQL refererer simpelthen til en metode til at sortere dataene i et forespørgselsresultat. Den stigende rækkefølge kan være enten numerisk eller alfabetisk afhængigt af målsorteringskolonnen.
Når vi anvender den stigende rækkefølge på en kolonnesortering, vil SQL organisere de data, der spænder fra den mindste (laveste) værdi til den største (højeste) værdi.
I tilfælde af strenge bruger den stigende rækkefølge alfabetisk rækkefølge, hvor A er den laveste og Z er den højeste.
SQL BESTIL EFTER
Som du kan gætte, er den måde, vi udfører sortering, stigende eller faldende i SQL, ved at bruge ORDER BY-sætningen.
ORDER BY-sætningen giver os mulighed for at sortere resultatsættet af en forespørgsel baseret på en eller flere kolonner. Vi kan udtrykke syntaksen af klausulen som følger:
VÆLG kolonne1, kolonne2, ...FRA bordet
BESTILLE BY column_to_sort;
Efter ORDER BY-klausulen angiver vi sorteringskriterierne. Dette er dybest set den kolonne, vi ønsker at bestille.
SQL ASC nøgleord
ASC-nøgleordet i sammenhæng med ORDER BY-klausulen fortæller databasemotoren at sortere dataene i stigende rækkefølge.
Det er godt at huske på, at dette er standardindstillingen for ORDER BY-klausulen. Derfor, selvom vi ikke eksplicit fortæller SQL om at sortere dataene i stigende rækkefølge, vil det automatisk gøre det som standardhandlingen.
Her er syntaksen for, hvordan vi anvender ASC-nøgleordet i ORDER BY-sætningen:
VÆLG kolonne1, kolonne2FRA tabelnavn
BESTILLE BY kolonne ASC;
Dette bør sortere den angivne kolonne i stigende rækkefølge.
Eksempel 1: Grundlæggende brug
Lad os se på et eksempel på brugen af ORDER BY-sætningen. Overvej 'film'-tabellen fra Sakila-eksempeldatabasen. Antag, at vi ønsker at sortere dataene fra den højeste lejepris i stigende rækkefølge.
VÆLGtitel,
udgivelsesår,
længde,
leje_pris
FRA
film
BESTILLE VED
leje_rate ASC;
I dette tilfælde bruger vi 'rental_rate' i ORDER BY-klausulen til hurtigt at sortere filmene fra den laveste til den højeste lejepris.
Det resulterende output er som følger:
Eksempel 2: Sortering af flere kolonner
SQL giver os også mulighed for at angive mere end én kolonne som sorteringsparameter. Dette kan være meget nyttigt, når vi skal sortere data baseret på mere end ét kriterium.
For at opnå dette kan vi blot angive flere kolonner i ORDER BY-sætningen adskilt af et komma.
Lad os tage 'betalings'-tabellen fra Sakila-bordet. Vi kan sortere baseret på beløbet og 'betalingsdatoen' i stigende rækkefølge som vist i følgende eksempelforespørgsel:
VÆLGKunde ID,
beløb,
betalingsdato
FRA
betaling
BESTILLE VED
beløb ASC,
betalingsdato ASC;
Denne forespørgsel skal hente kolonnerne 'customer_id', 'amount' og 'payment_date' fra 'payment'-tabellen. Forespørgslen sorterer dog først resultatet i stigende rækkefølge baseret på betalingsbeløbet efterfulgt af betalingsdatoen.
Dette giver dobbeltsorteringskriterier som vist i den resulterende tabel:
Konklusion
I denne tutorial dykkede vi dybt ned i processen med at sortere dataene i SQL ved hjælp af ORDER BY-sætningen. Vi lærte også, hvordan vi kan bruge ASC nøgleordet til at sortere dataene i stigende rækkefølge. Til sidst undersøgte vi, hvordan vi kan sortere dataene ved hjælp af flere kolonner.