BESTEL DOOR in MySQL: DESC & ASC Query met VOORBEELD

Resultaten sorteren

Met behulp van de opdracht SELECT werden de resultaten geretourneerd in dezelfde volgorde waarin de records aan de database waren toegevoegd. Dit is de standaard sorteervolgorde. In deze sectie bekijken we hoe we onze zoekopdrachtresultaten kunnen sorteren. Sorteren is eenvoudigweg het herschikken van onze zoekopdrachtresultaten op een bepaalde manier. Sorteren kan op een enkele kolom of op meer dan één kolom worden uitgevoerd. Het kan worden gedaan op nummer-, strings- en datumgegevenstypen.

Wat is ORDER BY in MySQL?

MySQL BESTELLEN DOOR wordt gebruikt in combinatie met de SELECT-query om gegevens op een ordelijke manier te sorteren. De MySQL ORDER BY-clausule wordt gebruikt om de queryresultatensets in oplopende of aflopende volgorde te sorteren.

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

HIER

  • "SELECT-instructie... " is de reguliere selectiequery
  • ” | “ vertegenwoordigt alternatieven
  • “[WAAR voorwaarde | GROUP BY `field_name(s)` HAVING condition” is de optionele voorwaarde die wordt gebruikt om de queryresultatensets te filteren.
  • “BESTEL DOOR” voert het sorteren van de queryresultaten uit
  • “[ASC | BESCHRIJVING]” is het trefwoord dat wordt gebruikt om resultatensets in oplopende of aflopende volgorde te sorteren. Opmerking ASC wordt als standaard gebruikt.
  • Wat zijn DESC- en ASC-trefwoorden?

    DESC- en ASC-trefwoordenASC is de korte vorm voor oplopend DESC- en ASC-trefwoordenMySQL DESC is de korte vorm voor aflopend
    Het wordt gebruikt om de zoekresultaten van boven naar beneden te sorteren. Het wordt gebruikt om de zoekopdrachtresultaten van onder naar boven te sorteren
    Wanneer u met datumgegevenstypen werkt, wordt de vroegste datum bovenaan de lijst weergegeven. . Wanneer u met datumtypen werkt, wordt de laatste datum bovenaan de lijst weergegeven.
    Wanneer u met numerieke gegevenstypen werkt, worden de laagste waarden bovenaan de lijst weergegeven. Wanneer u met numerieke gegevenstypen werkt, worden de hoogste waarden bovenaan de queryresultatenset weergegeven.
    Wanneer u met stringgegevenstypen werkt, wordt de resultatenset van de zoekopdracht gesorteerd van de resultaten die beginnen met de letter A en oplopen tot de letter Z. Wanneer u met stringgegevenstypen werkt, wordt de resultatenset van de zoekopdracht gesorteerd van de resultaten die beginnen met de letter Z en aflopen tot de letter A.

    Zowel de SQL DESC- als de ASC-sleutelwoorden worden samen gebruikt in combinatie met de SELECT-instructie en de MySQL ORDER BY-clausule.


    DESC- en ASC-syntaxis

    Het sorteerwoord SQL DESC heeft de volgende following basissyntaxis.

    SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

    HIER

    • SELECTEER {veldnaam(en) | *} FROM tabelNaam(en) is de instructie die de velden en tabel(len) bevat waaruit de resultatenset moet worden opgehaald.
    • [WHERE-voorwaarde] is optioneel, maar kan worden gebruikt om de gegevens te filteren op basis van de gegeven voorwaarde.
    • BESTELLING DOOR veldnaam(en) is verplicht en is het veld waarop de sortering moet worden uitgevoerd. Het MySQL DESC-sleutelwoord geeft aan dat de sortering in aflopende volgorde moet plaatsvinden.
    • [BEGRENZING] is optioneel, maar kan worden gebruikt om het aantal resultaten te beperken dat wordt geretourneerd door de queryresultatenset.

    Voorbeelden:

    Laten we nu eens naar een praktisch voorbeeld kijken –

    SELECT * FROM members;

    Het uitvoeren van het bovenstaande script in MySQL-workbench tegen de myflixdb geeft ons het volgendewing resultaten hieronder weergegeven.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553


Laten we aannemen dat de marketingafdeling wil dat de leden details gerangschikt in afnemende volgorde van geboortedatum. Dit zal hen helpen om tijdig verjaardagswensen te versturen. We kunnen de genoemde lijst verkrijgen door een zoekopdracht zoals hieronder uit te voeren:

SELECT * FROM members ORDER BY date_of_birth DESC;

Het uitvoeren van het bovenstaande script in MySQL-workbench tegen de myflixdb geeft ons het volgendewing resultaten hieronder weergegeven.

DESC- en ASC-voorbeeld

Dezelfde zoekopdracht in oplopende volgorde

SELECTEER * UIT leden BESTEL OP geboortedatum ASC

DESC- en ASC-voorbeeld

Opmerking: NULL-waarden betekent dat er geen waarden zijn (niet nul of een lege tekenreeks). Observeer de manier waarop ze zijn gesorteerd.

Meer voorbeelden

Laten we het volgende eens bekijkenwing SQL sorteert op script dat alle lidrecords weergeeft.

SELECT * FROM `members`;

Het uitvoeren van het bovenstaande script geeft het volgendewing resultaten hieronder weergegeven.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL


Stel dat we een lijst willen krijgen die de resultatenset van de zoekopdracht sorteert met behulp van het geslachtsveld, dan zouden we het onderstaande script gebruiken.

SELECT * FROM `members` ORDER BY `gender`;
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

“Vrouwelijke” leden zijn eerst weergegeven, gevolgd door “mannelijke” leden. Dit komt omdat wanneer de ORDER BY DESC-clausule wordt gebruikt zonder het ASC- of MySQL DESC-trefwoord op te geven, MySQL de queryresultaten standaard in oplopende volgorde heeft gesorteerd.

Laten we nu eens kijken naar een voorbeeld waarbij de sorteren met behulp van twee kolommen; de eerste is naargelang in oplopende volgorde standaard terwijl de tweede kolom dat is naargelang in aflopende volgorde.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

Het uitvoeren van het bovenstaande script in MySQL workbench tegen de myflixdb geeft het volgendewing resultaten.

DESC- en ASC-voorbeeld

De geslachtskolom werd standaard in oplopende volgorde gesorteerd, terwijl de kolom geboortedatum expliciet in aflopende volgorde werd gesorteerd

Waarom kunnen we DESC en ASC gebruiken?

Stel dat we een betalingsgeschiedenis willen afdrukken voor een lid van de videotheek om vragen van de receptie te kunnen beantwoorden. Zou het dan niet logischer zijn om de betalingen in aflopende chronologische volgorde te laten afdrukken, beginnend bij de recente betaling tot aan de eerdere betaling?

DESC in SQL is een sleutelwoord dat in dergelijke situaties handig kan zijn. We kunnen een query schrijven die de lijst in aflopende volgorde sorteert op basis van de betalingsdatum.

Stel dat de marketingafdeling een lijst met films per categorie wil hebben die leden kunnen gebruiken om te beslissen welke films beschikbaar zijn in de bibliotheek wanneer ze films huren, zou het dan niet logischer zijn om de namen en titels van de filmcategorieën oplopend te sorteren, zodat leden snel de informatie uit de lijst kunnen opzoeken?

Het trefwoord ASC komt in dergelijke situaties goed van pas; we kunnen de filmlijst gesorteerd krijgen op categorienaam en filmtitel in oplopende volgorde.

Samengevat

  • Het sorteren van queryresultaten is het opnieuw rangschikken van de rijen die worden geretourneerd uit een queryresultatenset, in oplopende of aflopende volgorde.
  • Het trefwoord DESC in SQL wordt gebruikt om de resultatenset van de zoekopdracht in aflopende volgorde te sorteren.
  • Het trefwoord ASC wordt gebruikt om de reeks zoekresultaten in oplopende volgorde te sorteren.
  • Zowel DESC als ASC werken in combinatie met het trefwoord ORDER BY. Ze kunnen ook worden gebruikt in combinatie met andere trefwoorden zoals WHERE-clausule en LIMIET
  • De standaardwaarde voor ORDER BY als er niets expliciet is opgegeven, is ASC.