Duomenų rūšiavimas naudojamas scenarijuose, kai reikia tvarkyti duomenis tam tikra tvarka, kuri yra naudinga duomenų vizualizavimui, duomenų įžvalgoms rinkti ir kt. Tai taip pat palengvina duomenų gavimo, valymo ir analizės procesą.
SQL sistemoje turime sąlygą ORDER BY, kuri suteikia mums galimybę rūšiuoti duomenis didėjančia arba mažėjančia tvarka.
Šioje pamokoje sužinosime, kaip rūšiuoti duomenis didėjančia tvarka naudojant ORDER BY ir ASC raktinį žodį.
PASTABA: demonstravimo tikslais naudosime Sakila duomenų bazę ir MySQL 8.0 versiją. Nesivaržykite remtis ir naudoti bet kokį duomenų rinkinį, kuris, jūsų nuomone, yra tinkamas.
SQL didėjimo tvarka
Didėjimo tvarka SQL tiesiog reiškia duomenų rūšiavimo užklausos rezultate metodą. Didėjimo tvarka gali būti skaitinė arba abėcėlė, atsižvelgiant į tikslinį rūšiavimo stulpelį.
Kai stulpelių rūšiavimui taikysime didėjančią tvarką, SQL sutvarkys duomenis nuo mažiausios (mažiausios) iki didžiausios (didžiausios) reikšmės.
Stygų atveju didėjančia tvarka naudojama abėcėlės tvarka, kur A yra mažiausia, o Z yra didžiausia.
SQL ORDER BY
Kaip galite atspėti, SQL rūšiavimą, didėjimą arba mažėjimą atliekame naudojant sąlygą ORDER BY.
Sąlyga ORDER BY leidžia rūšiuoti užklausos rezultatų rinkinį pagal vieną ar daugiau stulpelių. Sąlygos sintaksę galime išreikšti taip:
PASIRINKTI 1 stulpelį, 2 stulpelį...IŠ stalo
ĮSAKYMAS BY stulpelis_rūšiuoti;
Po punktu ORDER BY nurodome rūšiavimo kriterijus. Iš esmės tai yra stulpelis, kurį norime užsisakyti.
SQL ASC raktinis žodis
ASC raktinis žodis ORDER BY sąlygos kontekste nurodo duomenų bazės varikliui rūšiuoti duomenis didėjančia tvarka.
Verta nepamiršti, kad tai yra numatytoji sąlyga ORDER BY. Taigi, net jei aiškiai nenurodysime SQL rūšiuoti duomenų didėjančia tvarka, ji automatiškai tai atliks kaip numatytąją operaciją.
Štai sintaksė, kaip taikome ASC raktinį žodį sąlygoje ORDER BY:
PASIRINKTI 1 stulpelį, 2 stulpelįFROM lentelės_pavadinimas
ĮSAKYMAS BY stulpelis ASC;
Tai turėtų rūšiuoti nurodytą stulpelį didėjančia tvarka.
1 pavyzdys: pagrindinis naudojimas
Pažvelkime į ORDER BY sąlygos naudojimo pavyzdį. Apsvarstykite „Plėvelės“ lentelę iš Sakilos pavyzdžių duomenų bazės. Tarkime, kad norime rūšiuoti duomenis nuo didžiausios nuomos kainos didėjimo tvarka.
PASIRINKTItitulas,
release_year ,
ilgis,
nuomos_kainis
NUO
filmas
ĮSAKYMAS BY
rental_rate ASC;
Šiuo atveju mes naudojame „rental_rate“ pastraipoje ORDER BY, kad greitai surūšiuotume filmus nuo mažiausio iki didžiausio nuomos tarifo.
Gauta išvestis yra tokia:
2 pavyzdys: kelių stulpelių rūšiavimas
SQL taip pat leidžia mums pateikti daugiau nei vieną stulpelį kaip rūšiavimo parametrą. Tai gali būti labai naudinga, kai reikia rūšiuoti duomenis pagal daugiau nei vieną kriterijų.
Norėdami tai padaryti, galime tiesiog išvardyti kelis ORDER BY stulpelius, atskirtus kableliu.
Paimkime „mokėjimo“ lentelę iš „Sakilos“ stalo. Galime rūšiuoti pagal sumą ir mokėjimo_datą didėjimo tvarka, kaip parodyta toliau pateiktoje užklausos pavyzdyje:
PASIRINKTIKliento ID,
suma,
mokėjimo diena
NUO
mokėjimas
ĮSAKYMAS BY
suma ASC,
mokėjimo_data ASC;
Ši užklausa turėtų gauti stulpelius „customer_id“, „amount“ ir „payment_date“ iš lentelės „payment“. Tačiau užklausa pirmiausia surūšiuoja rezultatą didėjimo tvarka pagal mokėjimo sumą, po kurios nurodoma mokėjimo data.
Tai suteikia dvigubo rūšiavimo kriterijus, kaip parodyta gautoje lentelėje:
Išvada
Šioje pamokoje mes gilinomės į duomenų rūšiavimo SQL procesą, naudodami sąlygą ORDER BY. Taip pat sužinojome, kaip galime naudoti ASC raktinį žodį, norėdami rūšiuoti duomenis didėjančia tvarka. Galiausiai ištyrėme, kaip galime rūšiuoti duomenis naudodami kelis stulpelius.