Rezultatų rūšiavimas
Naudojant komandą SELECT, rezultatai buvo grąžinti ta pačia tvarka, kai įrašai buvo pridėti prie duomenų bazės. Tai yra numatytoji rūšiavimo tvarka. Šiame skyriuje mes nagrinėsime, kaip galime rūšiuoti užklausos rezultatus. Rūšiavimas paprasčiausiai pertvarko užklausos rezultatus nurodytu būdu. Rūšiuoti galima vienu stulpeliu arba daugiau nei vienu stulpeliu. Tai galima padaryti pagal skaičių, eilutes ir datos duomenų tipus.
Kas yra „ORDER BY“ sistemoje „MySQL“?
„MySQL ORDER BY “ naudojamas kartu su „SELECT“ užklausa tvarkingai rūšiuoti duomenis. Sąlyga „MySQL ORDER BY“ naudojama rūšiuojant užklausos rezultatų rinkinius didėjimo arba mažėjimo tvarka.
SELECT statement… [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
ČIA
- „SELECT utasítás…“ yra įprasta pasirinkimo užklausa
- "|" reiškia alternatyvas
- "[WHERE sąlyga | GROUP BY" lauko_pavadinimas (-ai) "TURI sąlyga" yra pasirinktinė sąlyga, naudojama filtruojant užklausos rezultatų rinkinius.
- „ORDER BY“ atlieka rūšiavimą pagal užklausos rezultatų rinkinį
- „[ASC | DESC]“ yra raktinis žodis, naudojamas rezultatų rinkiniams rūšiuoti didėjimo arba mažėjimo tvarka. Pastaba ASC naudojamas kaip numatytasis.
Kas yra DESC ir ASC raktiniai žodžiai?
ASC yra trumpa forma kylant |
„MySQL DESC“ yra trumpa forma, leidžianti nusileisti žemyn |
Jis naudojamas rūšiuojant užklausos rezultatus stiliaus nuo viršaus iki apačios. |
Jis naudojamas rūšiuojant užklausos rezultatus iš apačios į viršų stiliaus |
Dirbant pagal datos duomenų tipus, anksčiausia data rodoma sąrašo viršuje. |
. Dirbant pagal datų tipus, paskutinė data rodoma sąrašo viršuje. |
Dirbant su skaitmeniniais duomenų tipais, žemiausios vertės rodomos sąrašo viršuje. |
Dirbant su skaitmeniniais duomenų tipais, didžiausios vertės rodomos užklausos rezultatų rinkinio viršuje. |
Dirbant su eilutės duomenų tipais, užklausos rezultatų rinkinys yra rūšiuojamas nuo tų, kurie prasideda raide A, einančiomis iki raidės Z. |
Dirbant su eilutės duomenų tipais, užklausos rezultatų rinkinys yra rūšiuojamas nuo tų, kurie prasideda raide Z einant į A raidę. |
Tiek SQL DESC, tiek ASC raktiniai žodžiai naudojami kartu su SELECT sakiniu ir „MySQL ORDER BY“ sąlyga.
DESC ir ASC sintaksė
SQL DESC rūšiavimo raktinis žodis turi tokią pagrindinę sintaksę.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
ČIA
- PASIRINKITE {fieldName (s) | *} FROM tableName (s) yra sakinys, kuriame yra laukai ir lentelė (s), iš kurių gaunamas rezultatas.
- [WHERE sąlyga] yra neprivaloma, tačiau ją galima naudoti norint filtruoti duomenis pagal pateiktą sąlygą.
- „ORDER BY“ lauko pavadinimas (-ai) yra privalomas (-i) ir tai yra laukas, kuriame turi būti atliekamas rūšiavimas. „MySQL DESC“ raktinis žodis nurodo, kad rūšiavimas turi vykti mažėjimo tvarka.
- [LIMIT] yra neprivaloma, tačiau ją galima naudoti norint apriboti rezultatų, grąžintų iš užklausos rezultatų rinkinio, skaičių.
Pavyzdžiai:
Pažvelkime į praktinį pavyzdį -
SELECT * FROM members;
Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ suteikia mums šiuos rezultatus.
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 |
Tarkime, kad rinkodaros skyrius nori, kad duomenys apie narius būtų išdėstyti mažėjančia tvarka pagal Gimimo datą. Tai padės jiems laiku išsiųsti sveikinimus su gimtadieniu. Minėtą sąrašą galime gauti atlikdami tokią užklausą kaip žemiau -
SELECT * FROM members ORDER BY date_of_birth DESC;
Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ suteikia mums šiuos rezultatus.
Ta pati užklausa didėjimo tvarka
PASIRINKITE * IŠ NARIŲ UŽSAKYTI pagal gimimo ASC datą
Pastaba: NULL reikšmės nereiškia jokių verčių (ne nulinės ar tuščios eilutės). Stebėkite jų rūšiavimo būdą.
Daugiau pavyzdžių
Apsvarstykime šį scenarijų, kuriame išvardyti visi narių įrašai.
SELECT * FROM `members`;
Vykdant aukščiau pateiktą scenarijų gaunami šie rezultatai, parodyti toliau.
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 |
Tarkime, kad norime gauti sąrašą, kuriame surūšiuotas užklausos rezultatų rinkinys naudojant lyties lauką, mes naudotume žemiau pateiktą scenarijų.
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 |
Pirmiausia buvo rodomi „moterys“ nariai, po jų - „vyrai“. Taip yra todėl, kad naudojant sąlygą „ORDER BY DESC“ nenurodant ASC ar „MySQL DESC“ raktinio žodžio, „MySQL“ pagal numatytuosius nustatymus surūšiavo užklausos rezultatų rinkinį didėjimo tvarka.
Dabar pažvelkime į pavyzdį, kuris rūšiuoja du stulpelius ; pirmasis yra rūšiuojami į Didėjančia tvarka pagal nutylėjimą, o antrasis stulpelis rūšiuojami į mažėjančia tvarka.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Minėto scenarijaus vykdymas „MySQL“ darbastalyje su „myflixdb“ suteikia šiuos rezultatus.
Lyties stulpelis pagal numatytuosius nustatymus buvo surikiuotas didėjimo tvarka, o gimimo datos stulpelis - aiškiai mažėjimo tvarka.
Kodėl galime naudoti DESC ir ASC?
Tarkime, kad norime atsispausdinti vaizdo bibliotekos nario mokėjimų istoriją, kad padėtų atsakyti į registratūros klausimus, ar nebūtų logiškiau, jei mokėjimai būtų atspausdinti mažėjančia chronologine tvarka, pradedant neseniai atliktu mokėjimu į ankstesnį mokėjimą?
DESC SQL yra raktinis žodis, kuris tampa naudingas tokiose situacijose. Mes galime parašyti užklausą, kuri rūšiuoja sąrašą mažėjančia tvarka, naudodama mokėjimo datą.
Tarkime, kad rinkodaros skyrius nori gauti filmų sąrašą pagal kategorijas, pagal kuriuos nariai gali nuspręsti, kurie filmai yra bibliotekoje nuomojant filmus, ar nebūtų logiškiau žiūrėti rūšiuojant filmų kategorijų pavadinimus ir pavadinimus didėjančia tvarka, kad nariai gali greitai ieškoti informacijos iš sąrašo?
ASC raktinis žodis praverčia tokiose situacijose; filmų sąrašą galime surikiuoti pagal kategorijos pavadinimą ir filmo pavadinimą didėjimo tvarka.
Santrauka
- Rūšiuojant užklausos rezultatus, pertvarkomos eilutės, grąžintos iš užklausos rezultatų rinkinio didėjimo arba mažėjimo tvarka.
- SQL raktinis žodis DESC naudojamas užklausos rezultatų rinkiniui rūšiuoti mažėjimo tvarka.
- ASC raktinis žodis naudojamas surūšiuoti užklausos rezultatų rinkinį didėjimo tvarka.
- Tiek DESC, tiek ASC veikia kartu su raktiniu žodžiu ORDER BY. Jie taip pat gali būti naudojami kartu su kitais raktiniais žodžiais, pvz., WHERE sąlyga ir LIMIT
- Numatytasis ORDER BY, kai nieko nėra aiškiai nurodyta, yra ASC.