Sortowanie danych w SQL
Sortowanie w MySQL pozwala uporządkować wyniki zapytań w określonej kolejności – np. alfabetycznie, od największej do najmniejszej wartości, od najstarszej daty, itp.
Do sortowania służy polecenie ORDER BY.
1. Składnia podstawowa
- ASC → sortowanie rosnące (od A do Z, od najmniejszej do największej wartości)
- DESC → sortowanie malejące (od Z do A, od największej do najmniejszej wartości)
- Jeśli nie podasz kierunku, MySQL domyślnie sortuje rosnąco (ASC).
2. Sortowanie tekstów (alfabetycznie)
Sortowanie można stosować do kolumn tekstowych (np. imię, nazwisko, nazwa przedmiotu).
➡️ Wynik: uczniowie posortowani alfabetycznie według nazwiska.
➡️ Wynik: nauczyciele posortowani od końca alfabetu.
3. Sortowanie po liczbach
Wartości liczbowe (np. zarobki, oceny) można sortować od najmniejszej do największej lub odwrotnie.
➡️ Od nauczycieli najmniej do najwięcej zarabiających.
➡️ Od nauczycieli najlepiej do najgorzej zarabiających.
4. Sortowanie po dacie
Kolumny z datami (DATE) można uporządkować od najstarszej do najnowszej lub odwrotnie.
➡️ Oceny uporządkowane od najstarszej do najnowszej daty.
➡️ Oceny uporządkowane od najnowszej do najstarszej daty.
5. Sortowanie po kilku kolumnach
Można uporządkować dane według więcej niż jednej kolumny. MySQL najpierw sortuje po pierwszej kolumnie, a jeśli są te same wartości — po drugiej.
➡️ Uczniowie uporządkowani najpierw po nazwisku, a potem po imieniu.
6. Sortowanie po kolumnie, której nie wyświetlamy
Nie trzeba wyświetlać kolumny, po której sortujemy — można jej użyć tylko do ustalenia kolejności.
➡️ Wyświetla imię i nazwisko uczniów od najstarszego do najmłodszego (chociaż kolumna z datą nie jest pokazana).
7. Sortowanie z aliasem (inną nazwą kolumny)
Alias to „tymczasowa nazwa kolumny”, którą można też wykorzystać w sortowaniu.
➡️ Posortuje nauczycieli alfabetycznie według pełnego imienia i nazwiska.
8. Sortowanie tekstów z polskimi znakami
W tej bazie danych użyte jest utf8mb4_general_ci, co oznacza, że sortowanie nie rozróżnia wielkości liter i obsługuje polskie znaki.
Jeśli chcesz wymusić dokładniejsze sortowanie zgodne z polskim alfabetem, możesz dodać:
➡️ Dzięki temu „Ł” będzie traktowane inaczej niż „L” — czyli zgodnie z zasadami języka polskiego.
9. Sortowanie losowe
Można też wyświetlić wyniki w losowej kolejności, np. aby wylosować kilku uczniów.
➡️ Losowo wybiera 5 uczniów.
10. Sortowanie z ograniczeniem liczby wyników (LIMIT)
Często potrzebujemy zobaczyć tylko kilka pierwszych wyników po sortowaniu — np. 3 najlepiej zarabiających nauczycieli.
➡️ Pokazuje 3 nauczycieli z najwyższymi zarobkami.
Podsumowanie
| Pojęcie | Znaczenie |
|---|---|
| Polecenie sortowania | ORDER BY |
| Sortowanie rosnące | ASC (domyślne) |
| Sortowanie malejące | DESC |
| Sortowanie po kilku kolumnach | Tak (np. ORDER BY nazwisko, imie) |
| Sortowanie po kolumnie niewyświetlanej | Tak |
| Sortowanie po aliasie | Tak |
| Sortowanie z ograniczeniem wyników | LIMIT |
| Sortowanie losowe | ORDER BY RAND() |