Andmete sortimine tuleb mängu stsenaariumide puhul, kus peate korraldama andmed kindlas järjekorras, mis on kasulik andmete visualiseerimiseks, andmete kogumiseks ja muuks. Samuti muudab see andmete hankimise, puhastamise ja analüüsimise protsessi palju lihtsamaks.
SQL-is on meil klausel ORDER BY, mis annab meile funktsiooni andmete järjestamiseks kasvavas või kahanevas järjekorras.
Selles õpetuses õpime, kuidas järjestada andmeid kasvavas järjekorras, kasutades ORDER BY ja märksõna ASC.
MÄRKUS: Demonstratsiooni eesmärgil kasutame Sakila näidisandmebaasi ja MySQL versiooni 8.0. Viidake ja kasutage mis tahes andmestikku, mida peate kohaldatavaks.
SQL kasvav järjekord
SQL-i kasvav järjekord viitab lihtsalt päringutulemuses olevate andmete sortimise meetodile. Sõltuvalt sihtsordi veerust võib kasvav järjestus olla kas numbriline või tähestikuline.
Kui rakendame veergude sortimisel kasvavat järjekorda, korraldab SQL andmed, mis ulatuvad väikseimast (madalaimast) väärtusest suurima (kõrgeima) väärtuseni.
Stringide puhul kasutatakse kasvavas järjekorras tähestikulist järjekorda, kus A on madalaim ja Z on kõrgeim.
SQL ORDER BY
Nagu võite arvata, toimub SQL-is sortimise, tõusmise või kahanemise viis ORDER BY klausli kasutamine.
Klausel ORDER BY võimaldab meil sortida päringu tulemuse komplekti ühe või mitme veeru alusel. Lause süntaksi saame väljendada järgmiselt:
VALI veerg1, veerg2, ...tabelist
TELLIMINE BY veeru_sortimiseks;
Pärast ORDER BY klauslit täpsustame sorteerimiskriteeriumid. Põhimõtteliselt on see veerg, mida soovime tellida.
SQL ASC märksõna
ASC-märksõna ORDER BY klausli kontekstis käsib andmebaasimootoril andmeid järjestada kasvavas järjekorras.
Hea on meeles pidada, et see on klausli ORDER BY vaikevalik. Seega, isegi kui me ei käsi SQL-il selgesõnaliselt andmeid kasvavas järjekorras sorteerida, teeb see seda automaatselt vaiketoiminguna.
Siin on süntaks selle kohta, kuidas me rakendame ASC-märksõna klauslis ORDER BY:
VALI veerg1, veerg2FROM tabeli_nimi
TELLIMINE BY veeru ASC;
See peaks sorteerima määratud veeru kasvavas järjekorras.
Näide 1: Põhikasutus
Vaatame klausli ORDER BY kasutamise näidet. Vaatleme Sakila näidisandmebaasist pärit “filmi” tabelit. Oletame, et soovime andmeid järjestada kõrgeimast rendihinnast kasvavas järjekorras.
VALIpealkiri,
release_year ,
pikkus,
rendi_määr
FROM
film
TELLIMINE KÕRVAL
rendi_tariif ASC;
Sel juhul kasutame ORDER BY klauslis olevat “rental_rate”, et kiiresti sorteerida filmid madalaimast kuni kõrgeima rendihinnani.
Saadud väljund on järgmine:
Näide 2: Mitme veeru sortimine
SQL võimaldab meil pakkuda sortimisparameetrina rohkem kui ühte veergu. See võib olla väga kasulik, kui peame andmeid sorteerima rohkem kui ühe kriteeriumi alusel.
Selle saavutamiseks võime lihtsalt loetleda mitu veergu ORDER BY-klauslis, eraldades need komaga.
Võtame Sakila lauast “makse” tabeli. Saame sortida summa ja „maksekuupäeva” alusel kasvavas järjekorras, nagu on näidatud järgmises näidispäringus:
VALIKliendi ID,
summa,
makse_kuupäev
FROM
makse
TELLIMINE KÕRVAL
summa ASC,
makse_kuupäev ASC;
See päring peaks tooma tabelist „makse” veerud „customer_id”, „amount” ja „payment_date”. Siiski sorteerib päring esmalt tulemuse kasvavas järjekorras maksesumma ja sellele järgneva maksekuupäeva alusel.
See annab topelt sortimise kriteeriumid, nagu on näidatud saadud tabelis:
Järeldus
Selles õpetuses sukeldusime sügavale SQL-is andmete sortimise protsessi, kasutades klauslit ORDER BY. Samuti õppisime, kuidas saame kasutada ASC märksõna, et sorteerida andmeid kasvavas järjekorras. Lõpuks uurisime, kuidas saame andmeid sortida mitme veeru abil.