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()