SELECT i ORDER BY — pobieranie i sortowanie danych
W tej lekcji nauczysz się, jak pobrać dane z pojedynczej tabeli za pomocą polecenia SELECT oraz jak ustawić wyniki w wybranej kolejności za pomocą ORDER BY. Na tym etapie pracujemy wyłącznie na jednej tabeli — bez łączenia tabel (JOIN) i bez filtrowania warunkami (WHERE), żeby skupić się na samej logice pobierania i porządkowania danych.
SELECT — pobieranie danych
Podstawowa składnia polecenia wygląda tak:
SELECT kolumna1, kolumna2 FROM nazwa_tabeli;
Po słowie SELECT wskazujemy, jakie kolumny chcemy zobaczyć w wyniku, a po FROM — z jakiej tabeli je pobieramy. Jeśli chcemy zobaczyć wszystkie kolumny naraz, zamiast ich wymieniać używamy gwiazdki:
SELECT * FROM nazwa_tabeli;
Warto od razu zapamiętać: SELECT * jest wygodne przy eksploracji danych, ale w praktyce zawodowej lepiej wymieniać konkretne kolumny — zapytanie jest wtedy czytelniejsze i szybsze, bo baza nie musi przesyłać zbędnych danych.
ORDER BY — sortowanie wyników
Bez dodatkowych instrukcji baza danych nie gwarantuje żadnej konkretnej kolejności wierszy w wyniku. Aby ją ustalić, używamy klauzuli ORDER BY:
SELECT kolumna1, kolumna2 FROM nazwa_tabeli
ORDER BY kolumna1;
Kilka zasad, które warto zapamiętać na start:
- Sortowanie rosnące (ASC) jest domyślne — nie trzeba go zapisywać.
ORDER BY pensjaiORDER BY pensja ASCdziałają identycznie. - Sortowanie malejące wymaga dopisania
DESC, np.ORDER BY pensja DESC. - Sortowanie po kilku kolumnach jest możliwe — wystarczy wymienić je po przecinku, np.
ORDER BY dzial, pensja DESC. Wiersze są wtedy najpierw grupowane według pierwszej kolumny, a w obrębie każdej grupy sortowane według drugiej. ORDER BYzmienia wyłącznie kolejność wyświetlania wyników zapytania — sama tabela w bazie danych pozostaje bez zmian.
Zobacz to w praktyce
Poniższa animacja pokazuje krok po kroku: pobieranie wszystkich kolumn, wybieranie tylko wybranych kolumn, a następnie sortowanie rosnące, malejące i wielopoziomowe na przykładzie tabeli PRACOWNICY.
Poniżej dodałem jeszcze nagranie live, w którym pokażę te same przykłady bezpośrednio w SQL Server Management Studio.