NARUDŽI PO in MySQL: DESC & ASC upit s PRIMJEROM
Razvrstavanje rezultata
Korištenjem naredbe SELECT, rezultati su vraćeni istim redoslijedom kojim su zapisi dodani u bazu podataka. Ovo je zadani redoslijed sortiranja. U ovom odjeljku ćemo pogledati kako možemo razvrstati naše rezultate upita. Sortiranje je jednostavno ponovno uređivanje rezultata naših upita na određeni način. Sortiranje se može izvršiti na jednom stupcu ili na više od jednog stupca. To se može učiniti na tipovima podataka s brojevima, nizovima i datumima.
Što je ORDER BY u MySQL?
MySQL NARUČITE PO koristi se zajedno s upitom SELECT za sortiranje podataka na uredan način. The MySQL Klauzula ORDER BY koristi se za sortiranje skupova rezultata upita uzlaznim ili silaznim redoslijedom.
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
OVDJE
- "SELECT izraz...” je uobičajeni upit za odabir
- ” | “ predstavlja alternative
- “[WHERE stanje | GRUPIRAJ PO `naziv_polja` IMAJU uvjet” je izborni uvjet koji se koristi za filtriranje skupova rezultata upita.
- “NARUČI PO” izvodi sortiranje skupa rezultata upita
- “[ASC | DESC]” je ključna riječ koja se koristi za sortiranje skupova rezultata u uzlaznom ili silaznom redoslijedu. Bilješka ASC koristi se kao zadana vrijednost.
- SELECT {naziv(a) polja | *} IZ Naziv(a) tablice je izjava koja sadrži polja i tablicu(e) iz kojih se dobiva skup rezultata.
- [WHERE stanje] nije obavezan, ali se može koristiti za filtriranje podataka prema danom uvjetu.
- NARUČITE PO fieldname(s) je obavezno i to je polje na kojem će se izvršiti sortiranje. The MySQL Ključna riječ DESC navodi da sortiranje treba biti silaznim redoslijedom.
- [OGRANIČITI] nije obavezan, ali se može koristiti za ograničavanje broja rezultata vraćenih iz skupa rezultata upita.
Što su DESC i ASC ključne riječi?
Koristi se za sortiranje rezultata upita odozgo prema dolje. | Koristi se za sortiranje rezultata upita odozdo prema gore |
Kada radite na vrstama podataka datuma, najraniji datum prikazan je na vrhu popisa. | . Kada radite na vrstama datuma, posljednji datum prikazan je na vrhu popisa. |
Kada radite s numeričkim tipovima podataka, najniže vrijednosti prikazane su na vrhu popisa. | Kada radite s numeričkim tipovima podataka, najveće vrijednosti prikazane su na vrhu skupa rezultata upita. |
Kada radite s vrstama podataka niza, skup rezultata upita sortira se od onih koji počinju slovom A pa sve do slova Z. | Kada radite s tipovima podataka niza, skup rezultata upita sortira se od onih koji počinju slovom Z prema dolje do slova A. |
I SQL DESC i ASC ključne riječi koriste se zajedno s naredbom SELECT i MySQL ORDER BY klauzula.
DESC i ASC sintaksa
Ključna riječ sortiranja SQL DESC ima sljedeću osnovnu sintaksu.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
OVDJE
Primjeri:
Pogledajmo sada praktičan primjer –
SELECT * FROM members;
Izvršavanje gornje skripte u MySQL workbench u odnosu na myflixdb daje nam sljedeće rezultate prikazane u nastavku.
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 | 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 |
Pretpostavimo da marketinški odjel želi podatke o članovima posložiti u padajućem redoslijedu prema datumu rođenja. To će im pomoći da na vrijeme pošalju rođendanske čestitke. Navedeni popis možemo dobiti izvršavanjem upita kao u nastavku –
SELECT * FROM members ORDER BY date_of_birth DESC;
Izvršavanje gornje skripte u MySQL workbench u odnosu na myflixdb daje nam sljedeće rezultate prikazane u nastavku.
Isti upit uzlaznim redoslijedom
SELECT * FROM članova ORDER BY date_of_birth ASC
Napomena: NULL vrijednosti znače da nema vrijednosti (ne nula ili prazan niz). Promatrajte način na koji su sortirani.
Više primjera
Razmotrimo sljedeće SQL sortiranje po skripti koja ispisuje sve zapise članova.
SELECT * FROM `members`;
Izvršavanje gornje skripte daje sljedeće rezultate prikazane u nastavku.
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 | 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 |
Pretpostavimo da želimo dobiti popis koji sortira skup rezultata upita pomoću polja spola, koristili bismo skriptu prikazanu u nastavku.
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 | 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 |
Prvo su prikazani "ženski" članovi, a zatim "muški" članovi, to je zato što kada se klauzula ORDER BY DESC koristi bez navođenja ASC ili MySQL DESC ključna riječ, prema zadanim postavkama, MySQL je poredao skup rezultata upita uzlaznim redoslijedom.
Pogledajmo sada primjer koji radi sortiranje pomoću dva stupca; prvi je sortirano in uzlazni poredak prema zadanim postavkama dok je drugi stupac sortirano in silazni redoslijed.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Izvršavanje gornje skripte u MySQL workbench u odnosu na myflixdb daje sljedeće rezultate.
Stupac spola prema zadanim postavkama poredan je uzlaznim redoslijedom, dok je stupac datuma rođenja izričito poredan silaznim redoslijedom
Zašto možemo koristiti DESC i ASC?
Pretpostavimo da želimo ispisati povijest plaćanja za člana videoteke kako bismo lakše odgovorili na upite s recepcije, ne bi li bilo logičnije da se uplate ispisuju silaznim kronološkim redom počevši od nedavne uplate do prethodne?
DESC u SQL-u je ključna riječ koja postaje zgodna u takvim situacijama. Možemo napisati upit koji sortira popis silaznim redoslijedom prema datumu plaćanja.
Pretpostavimo da marketinški odjel želi dobiti popis filmova po kategorijama koje članovi mogu koristiti za odlučivanje koji su filmovi dostupni u knjižnici prilikom iznajmljivanja filmova, ne bi li bilo logičnije pogledati poredati nazive kategorija filmova i naslove uzlazno tako da članovi mogu brzo potražiti informacije s popisa?
Ključna riječ ASC dobro dođe u takvim situacijama; možemo dobiti popis filmova poredan prema nazivu kategorije i naslovu filma uzlaznim redoslijedom.
Rezime
- Sortiranje rezultata upita je ponovno raspoređivanje redaka vraćenih iz skupa rezultata upita bilo uzlaznim bilo silaznim redoslijedom.
- Ključna riječ DESC u SQL-u koristi se za sortiranje skupa rezultata upita silaznim redoslijedom.
- Ključna riječ ASC koristi se za sortiranje skupa rezultata upita uzlaznim redoslijedom.
- I DESC i ASC rade zajedno s ključnom riječi ORDER BY. Također se mogu koristiti u kombinaciji s drugim ključnim riječima kao što su WHERE klauzula i OGRANIČITI
- Zadana vrijednost za ORDER BY kada ništa nije eksplicitno navedeno je ASC.