ZAMÓW PRZEZ w MySQL: Zapytanie DESC i ASC z PRZYKŁADEM
Sortowanie wyników
Za pomocą polecenia SELECT wyniki zostały zwrócone w tej samej kolejności, w jakiej rekordy zostały dodane do bazy danych. Jest to domyślna kolejność sortowania. W tej sekcji przyjrzymy się, jak możemy sortować wyniki zapytań. Sortowanie to po prostu ponowne uporządkowanie wyników zapytania w określony sposób. Sortowanie może odbywać się na pojedynczej kolumnie lub na więcej niż jednej kolumnie. Można to zrobić na typach danych liczbowych, łańcuchowych i datowych.
Co to jest ORDER BY w MySQL?
MySQL ZAMÓW PRZEZ jest używany w połączeniu z zapytaniem SELECT do sortowania danych w uporządkowany sposób. The MySQL Klauzula ORDER BY służy do sortowania wyników zapytania w kolejności rosnącej lub malejącej.
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
TUTAJ
- "SELECT oświadczenie... " to zwykłe zapytanie wybierające
- ” | „ reprezentuje alternatywy
- „[Warunek GDZIE | GRUPUJ WEDŁUG `nazw_pola` POSIADAJĄCY warunek” jest opcjonalnym warunkiem używanym do filtrowania zestawów wyników zapytania.
- "ZAMÓW PRZEZ" wykonuje sortowanie zestawu wyników zapytania
- „[ASC | OPIS]” to słowo kluczowe używane do sortowania zestawów wyników w kolejności rosnącej lub malejącej. Notatka ROSNĄCO jest używany domyślnie.
- WYBIERZ {nazwy pól | *} FROM nazwa(-y) tabeli to instrukcja zawierająca pola i tabele, z których można pobrać zestaw wyników.
- [warunek GDZIE] jest opcjonalny, ale można go użyć do filtrowania danych zgodnie z podanym warunkiem.
- ZAMÓW PRZEZ nazwa_pola jest obowiązkowa i stanowi pole, według którego ma zostać przeprowadzone sortowanie. The MySQL Słowo kluczowe DESC określa, że sortowanie ma odbywać się w kolejności malejącej.
- [LIMIT] jest opcjonalny, ale można go użyć do ograniczenia liczby wyników zwracanych ze zbioru wyników zapytania.
Co to są słowa kluczowe DESC i ASC?
Służy do sortowania wyników zapytania w stylu od góry do dołu. | Służy do sortowania wyników zapytania w stylu od dołu do góry |
Podczas pracy z typami danych typu data najwcześniejsza data jest wyświetlana na górze listy. | . Podczas pracy nad typami dat najnowsza data jest wyświetlana na górze listy. |
Podczas pracy z numerycznymi typami danych najniższe wartości są wyświetlane na górze listy. | Podczas pracy z numerycznymi typami danych najwyższe wartości są wyświetlane u góry zestawu wyników zapytania. |
Podczas pracy z ciągowymi typami danych zestaw wyników zapytania jest sortowany od tych zaczynających się od litery A aż do litery Z. | Podczas pracy z ciągowymi typami danych zestaw wyników zapytania jest sortowany od tych zaczynających się od litery Z i kończących się na literze A. |
Zarówno słowa kluczowe SQL DESC, jak i ASC są używane razem w połączeniu z instrukcją SELECT i MySQL Klauzula ORDER BY.
Składnia DESC i ASC
Słowo kluczowe sort SQL DESC ma następującą podstawową składnię.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
TUTAJ
Przykłady:
Spójrzmy teraz na praktyczny przykład –
SELECT * FROM members;
Wykonanie powyższego skryptu w MySQL workbench z myflixdb daje nam następujące wyniki, pokazane poniżej.
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 |
Załóżmy, że dział marketingu chce, aby dane członków były uporządkowane malejąco według daty urodzenia. Pomoże im to wysyłać życzenia urodzinowe w odpowiednim czasie. Możemy uzyskać wspomnianą listę, wykonując zapytanie takie jak poniżej –
SELECT * FROM members ORDER BY date_of_birth DESC;
Wykonanie powyższego skryptu w MySQL workbench z myflixdb daje nam następujące wyniki, pokazane poniżej.
To samo zapytanie w kolejności rosnącej
WYBIERZ * Z członków ZAMÓW WG daty_urodzenia ASC
Uwaga: Wartości NULL oznaczają brak wartości (nie zero lub pusty ciąg znaków). Zwróć uwagę na sposób ich sortowania.
Więcej przykładów
Rozważmy następujący skrypt SQL sortujący, który wyświetla wszystkie rekordy członkowskie.
SELECT * FROM `members`;
Wykonanie powyższego skryptu daje następujące wyniki.
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 |
Załóżmy, że chcemy uzyskać listę sortującą zestaw wyników zapytania przy użyciu pola płci. Użylibyśmy skryptu pokazanego poniżej.
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 |
Najpierw wyświetlani są członkowie „kobiety”, a następnie członkowie „mężczyźni”. Dzieje się tak, ponieważ klauzula ORDER BY DESC jest używana bez określenia ASC lub MySQL Domyślnie słowo kluczowe DESC MySQL posortował zestaw wyników zapytania w kolejności rosnącej.
Spójrzmy teraz na przykład, który wykonuje sortowanie za pomocą dwóch kolumn; pierwszy jest sortowane in rosnąco domyślnie, podczas gdy druga kolumna jest sortowane in Kolejność malejąca.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Wykonanie powyższego skryptu w MySQL workbench z myflixdb daje następujące wyniki.
Kolumna płci została domyślnie posortowana w porządku rosnącym, natomiast kolumna daty urodzenia została jawnie posortowana w porządku malejącym
Dlaczego możemy używać DESC i ASC?
Załóżmy, że chcemy wydrukować historię płatności członka biblioteki wideo, aby pomóc w odpowiedzi na zapytania z recepcji. Czy nie byłoby bardziej logiczne wydrukowanie płatności w malejącej kolejności chronologicznej, począwszy od ostatniej płatności do wcześniejszej płatności?
DESC w SQL to słowo kluczowe, które przydaje się w takich sytuacjach. Możemy napisać zapytanie, które posortuje listę w kolejności malejącej według daty płatności.
Załóżmy, że dział marketingu chce uzyskać listę filmów według kategorii, na podstawie której członkowie mogliby zdecydować, które filmy są dostępne w bibliotece podczas wypożyczania filmów. Czy nie byłoby logiczniej posortować nazwy i tytuły kategorii filmów rosnąco, tak aby członkowie mogą szybko wyszukiwać informacje na liście?
W takich sytuacjach przydaje się słowo kluczowe ASC; możemy uzyskać listę filmów posortowaną rosnąco według nazwy kategorii i tytułu filmu.
Podsumowanie
- Sortowanie wyników zapytania polega na ponownym uporządkowaniu wierszy zwróconych ze zbioru wyników zapytania w kolejności rosnącej lub malejącej.
- Słowo kluczowe DESC w języku SQL służy do sortowania zestawu wyników zapytania w kolejności malejącej.
- Słowo kluczowe ASC służy do sortowania zestawu wyników zapytania w kolejności rosnącej.
- Zarówno DESC, jak i ASC działają w połączeniu ze słowem kluczowym ORDER BY. Można je również stosować w połączeniu z innymi słowami kluczowymi, takimi jak klauzula GDZIE i OGRANICZ
- Domyślną wartością ORDER BY, gdy nic nie zostało wyraźnie określone, jest ASC.