COMANDA PENTRU în MySQL: DESC & ASC Interogare cu EXEMPLU
Sortarea rezultatelor
Folosind comanda SELECT, rezultatele au fost returnate în aceeași ordine în care înregistrările au fost adăugate în baza de date. Aceasta este ordinea de sortare implicită. În această secțiune, vom analiza cum putem sorta rezultatele interogărilor noastre. Sortarea înseamnă pur și simplu rearanjarea rezultatelor interogărilor noastre într-un mod specificat. Sortarea poate fi efectuată pe o singură coloană sau pe mai multe coloane. Se poate face pe numere, șiruri, precum și pe tipuri de date.
Ce este ORDER BY în MySQL?
MySQL COMANDA DE este utilizat împreună cu interogarea SELECT pentru a sorta datele într-o manieră ordonată. The MySQL Clauza ORDER BY este utilizată pentru a sorta seturile de rezultate ale interogării în ordine crescătoare sau descrescătoare.
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
AICI
- instrucțiunea SELECT... " este interogarea de selectare obișnuită
- "| " reprezintă alternative
- „[condiția UNDE | GROUP BY `field_name(s)` HAVING condition” este condiția opțională utilizată pentru a filtra seturile de rezultate ale interogării.
- „COMANDAȚI DE” realizează sortarea setului de rezultate ale interogării
- „[ASC | DESC]” este cuvântul cheie folosit pentru a sorta seturile de rezultate în ordine crescătoare sau descrescătoare. Notă ASC este folosit ca implicit.
- SELECTAȚI {fieldName(s) | *} FROM tableName(e) este instrucțiunea care conține câmpurile și tabelele din care să obțineți setul de rezultate.
- [condiția UNDE] este opțional, dar poate fi folosit pentru a filtra datele în funcție de condiția dată.
- COMANDA DE fieldname(s) este obligatoriu și este câmpul pe care urmează să fie efectuată sortarea. The MySQL Cuvântul cheie DESC specifică că sortarea trebuie să fie în ordine descrescătoare.
- [LIMITĂ] este opțional, dar poate fi folosit pentru a limita numărul de rezultate returnate din setul de rezultate ale interogării.
Ce sunt cuvintele cheie DESC și ASC?
Este folosit pentru a sorta rezultatele interogării într-un stil de sus în jos. | Este folosit pentru a sorta rezultatele interogării într-un stil de jos în sus |
Când lucrați la tipuri de date de date, cea mai veche dată este afișată în partea de sus a listei. | . Când lucrați la tipuri de date, cea mai recentă dată este afișată în partea de sus a listei. |
Când lucrați cu tipuri de date numerice, cele mai mici valori sunt afișate în partea de sus a listei. | Când lucrați cu tipuri de date numerice, cele mai mari valori sunt afișate în partea de sus a setului de rezultate ale interogării. |
Când lucrați cu tipuri de date șir, setul de rezultate ale interogării este sortat de la cele care încep cu litera A până la litera Z. | Când se lucrează cu tipuri de date șir, setul de rezultate ale interogării este sortat de la cele care încep cu litera Z și merg în jos până la litera A. |
Ambele cuvinte cheie SQL DESC și ASC sunt utilizate împreună cu instrucțiunea SELECT și MySQL clauza ORDER BY.
Sintaxa DESC și ASC
Cuvântul cheie de sortare SQL DESC are următoarea sintaxă de bază.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
AICI
Exemple:
Să ne uităm acum la un exemplu practic -
SELECT * FROM members;
Executarea scriptului de mai sus în MySQL Workbench împotriva myflixdb ne oferă următoarele rezultate prezentate mai jos.
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 |
Să presupunem că departamentul de marketing dorește detaliile membrilor aranjate în ordine descrescătoare a datei nașterii. Acest lucru îi va ajuta să trimită felicitări de ziua de naștere în timp util. Putem obține lista menționată executând o interogare ca mai jos -
SELECT * FROM members ORDER BY date_of_birth DESC;
Executarea scriptului de mai sus în MySQL Workbench împotriva myflixdb ne oferă următoarele rezultate prezentate mai jos.
Aceeași interogare în ordine crescătoare
SELECTAȚI * FROM membri ORDER BY data_nașterii ASC
Notă: valorile NULL înseamnă că nu există valori (nu zero sau șir gol). Observați modul în care au fost sortate.
Mai multe exemple
Să luăm în considerare următorul script de sortare SQL care listează toate înregistrările membre.
SELECT * FROM `members`;
Executarea scriptului de mai sus oferă următoarele rezultate prezentate mai jos.
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 |
Să presupunem că dorim să obținem o listă care sortează setul de rezultate ale interogării folosind câmpul de gen, vom folosi scriptul prezentat mai jos.
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 |
Membrii „femei” au fost afișați mai întâi, urmați de membrii „bărbați”, acest lucru se datorează faptului că atunci când clauza ORDER BY DESC este folosită fără a specifica ASC sau MySQL cuvânt cheie DESC, în mod implicit, MySQL a sortat setul de rezultate ale interogării în ordine crescătoare.
Să ne uităm acum la un exemplu care face sortarea folosind două coloane; primul este sortate in ordine crescătoare implicit în timp ce a doua coloană este sortate in ordine descrescatoare.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Executarea scriptului de mai sus în MySQL Workbench împotriva myflixdb oferă următoarele rezultate.
Coloana gen a fost sortată în ordine crescătoare în mod implicit, în timp ce coloana cu data nașterii a fost sortată în mod explicit în ordine descrescătoare
De ce putem folosi DESC și ASC?
Să presupunem că dorim să tipărim un istoric de plăți pentru un membru al bibliotecii video pentru a răspunde la întrebările de la recepție, nu ar fi mai logic să avem plățile tipărite într-o ordine cronologică descrescătoare, începând cu plata recentă până la plata anterioară?
DESC în SQL este un cuvânt cheie care devine util în astfel de situații. Putem scrie o interogare care sortează lista în ordine descrescătoare folosind data plății.
Să presupunem că departamentul de marketing dorește să obțină o listă de filme după categorie pe care membrii să o poată utiliza pentru a decide ce filme sunt disponibile în bibliotecă atunci când închiriază filme, nu ar fi mai logic să sortăm numele și titlul categoriilor de film în sus, astfel încât membrii pot căuta rapid informațiile din listă?
Cuvântul cheie ASC este util în astfel de situații; putem obține lista de filme sortată după numele categoriei și titlul filmului într-o ordine crescătoare.
Rezumat
- Sortarea rezultatelor interogării înseamnă rearanjarea rândurilor returnate dintr-un set de rezultate de interogare, fie în ordine crescătoare, fie în ordine descrescătoare.
- Cuvântul cheie DESC în SQL, este folosit pentru a sorta setul de rezultate ale interogării într-o ordine descrescătoare.
- Cuvântul cheie ASC este folosit pentru a sorta setul de rezultate ale interogării în ordine crescătoare.
- Atât DESC, cât și ASC funcționează împreună cu cuvântul cheie ORDER BY. Ele pot fi, de asemenea, utilizate în combinație cu alte cuvinte cheie, cum ar fi clauza WHERE și LIMIT
- Valoarea implicită pentru ORDER BY când nimic nu a fost specificat în mod explicit este ASC.