Razvrščanje rezultatov
Z ukazom SELECT so bili rezultati vrnjeni v enakem vrstnem redu, kot so bili zapisi dodani v bazo podatkov. To je privzeti vrstni red razvrščanja. V tem poglavju bomo preučili, kako lahko razvrstimo rezultate poizvedb. Razvrščanje je preprosto prerazporeditev rezultatov poizvedbe na določen način. Razvrščanje je mogoče izvesti v enem stolpcu ali v več stolpcih. To je mogoče storiti za številke, nize in datumske tipe podatkov.
Kaj je ORDER BY v MySQL?
MySQL ORDER BY se uporablja skupaj z poizvedbo SELECT za urejeno razvrščanje podatkov. Stavek MySQL ORDER BY se uporablja za razvrščanje nizov poizvedb v naraščajočem ali padajočem vrstnem redu.
SELECT statement… [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
TUKAJ
- "Izjava SELECT ..." je običajna poizvedba za izbiro
- "|" predstavlja alternative
- "[WHERE pogoj | GROUP BY` ime_polja polja 'HAVING condition " je neobvezen pogoj, ki se uporablja za filtriranje naborov rezultatov poizvedbe.
- "ORDER BY" izvede razvrščanje nabora rezultatov poizvedbe
- "[ASC | DESC]" je ključna beseda, ki se uporablja za razvrščanje nizov rezultatov v naraščajočem ali padajočem vrstnem redu. Opomba ASC se uporablja kot privzeta.
Kaj so ključne besede DESC in ASC?
ASC je kratka oblika za naraščanje |
MySQL DESC je kratka oblika za spust |
Uporablja se za razvrščanje rezultatov poizvedbe po slogu od zgoraj navzdol. |
Uporablja se za razvrščanje rezultatov poizvedbe v slogu od spodaj navzgor |
Pri obdelavi podatkovnih vrst datumov je na začetku seznama prikazan najzgodnejši datum. |
. Pri delu z vrstami datumov je na vrhu seznama prikazan najnovejši datum. |
Pri delu s številskimi podatkovnimi vrstami so najnižje vrednosti prikazane na vrhu seznama. |
Pri delu s številskimi podatkovnimi vrstami so najvišje vrednosti prikazane na vrhu nabora rezultatov poizvedbe. |
Pri delu s podatkovnimi vrstami nizov je nabor rezultatov poizvedbe razvrščen od tistih, ki se začnejo s črko A, ki sega do črke Z. |
Pri delu z vrstami podatkov niza je rezultat poizvedbe razvrščen od tistih, ki se začnejo s črko Z, ki se spušča do črke A. |
Ključni besedi SQL DESC in ASC se uporabljata skupaj v povezavi s stavkom SELECT in stavkom MySQL ORDER BY.
Sintaksa DESC in ASC
Ključna beseda za razvrščanje SQL DESC ima naslednjo osnovno sintakso.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
TUKAJ
- SELECT {poljaName |. | *} FROM tableName (s) je stavek, ki vsebuje polja in tabele (-e), iz katerih je mogoče dobiti rezultat.
- [WHERE pogoj] ni obvezen, vendar se lahko uporablja za filtriranje podatkov glede na dani pogoj.
- NAROČI PO Imena polj je obvezno in je polje, na katerem bo izvedeno razvrščanje. Ključna beseda MySQL DESC določa, da mora biti razvrščanje v padajočem vrstnem redu.
- [LIMIT] ni obvezen, vendar ga lahko uporabite za omejitev števila rezultatov, vrnjenih iz nabora rezultatov poizvedbe.
Primeri:
Poglejmo si zdaj praktični primer -
SELECT * FROM members;
Izvedba zgornjega skripta v delovnem okolju MySQL proti myflixdb nam da naslednje rezultate, prikazane spodaj.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 |
Predpostavimo, da želi služba za marketing podrobnosti o članih razvrščene po padajočem vrstnem redu datuma rojstva. To jim bo pomagalo pravočasno poslati čestitke za rojstni dan. Omenjeni seznam lahko dobimo tako, da izvedemo poizvedbo, kot je spodaj -
SELECT * FROM members ORDER BY date_of_birth DESC;
Izvedba zgornjega skripta v delovnem okolju MySQL proti myflixdb nam da naslednje rezultate, prikazane spodaj.
Ista poizvedba v naraščajočem vrstnem redu
SELECT * FROM members ORDER BY date_of_birth ASC
Opomba: NULL vrednosti pomenijo nobene vrednosti (ne nič ali prazen niz). Opazujte način razvrščanja.
Več primerov
Upoštevajmo naslednji skript, ki navaja vse zapise članov.
SELECT * FROM `members`;
Izvedba zgornjega skripta daje naslednje rezultate, prikazane spodaj.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 |
Recimo, da želimo dobiti seznam, ki razvrsti nabor poizvedb z uporabo polja spola, bi uporabili spodnji skript.
SELECT * FROM `members` ORDER BY `gender`;
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 |
Člani »Ženski« so bili najprej prikazani, nato pa »Moški«, ker je pri uporabi stavka ORDER BY DESC brez navedbe ključne besede ASC ali MySQL DESC MySQL privzeto razvrščal nabor poizvedb v naraščajočem vrstnem redu.
Poglejmo si zdaj primer, ki sortiranje opravi v dveh stolpcih ; prvi je razvrščen v naraščajočem vrstnem redu , ki ga privzeto, medtem ko je drugi stolpec razporejene v padajočem vrstnem redu.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Izvedba zgornjega skripta v MySQL delovni mizi proti myflixdb daje naslednje rezultate.
Stolpec spola je bil privzeto razvrščen v naraščajočem vrstnem redu, stolpec z datumom rojstva pa izrecno v padajočem vrstnem redu
Zakaj lahko uporabljamo DESC in ASC?
Recimo, da želimo članu videoteke natisniti zgodovino plačil, da bomo lažje odgovarjali na poizvedbe na recepciji, ali ne bi bilo bolj logično, da se plačila natisnejo v padajočem kronološkem vrstnem redu, začenši z nedavnim plačilom do prejšnjega plačila?
DESC v SQL je ključna beseda, ki v takšnih situacijah postane priročna. Lahko napišemo poizvedbo, ki seznam razvrsti po padajočem vrstnem redu z datumom plačila.
Recimo, da želi marketinški oddelek dobiti seznam filmov po kategorijah, s pomočjo katerih se člani lahko odločijo, kateri filmi so na voljo v knjižnici pri najemu filmov, ali ne bi bilo bolj logično, če bi imena in naslove kategorij filmov razvrstili naraščajoče, tako da lahko člani hitro poiščejo podatke s seznama?
Ključna beseda ASC je v takšnih situacijah prav priročna; seznam filmov lahko razvrstimo po imenu kategorije in naslovu filma v naraščajočem vrstnem redu.
Povzetek
- Razvrščanje rezultatov poizvedbe je prerazporeditev vrstic, vrnjenih iz nabora rezultatov poizvedbe, v naraščajočem ali padajočem vrstnem redu.
- Ključna beseda DESC v SQL se uporablja za razvrščanje nabora poizvedb v padajočem vrstnem redu.
- Ključna beseda ASC se uporablja za razvrščanje nabora poizvedb v naraščajočem vrstnem redu.
- Tako DESC kot ASC delujeta v povezavi s ključno besedo ORDER BY. Uporabljajo se lahko tudi v kombinaciji z drugimi ključnimi besedami, kot sta stavek WHERE in LIMIT
- Privzeto za ORDER BY, ko ni bilo izrecno določeno nič, je ASC.