Wyróżnianie danych (DISTINCT) oraz sortowanie (ORDER BY)
Dzisiaj przeprowadzimy kolejne zapytania kierowane do bazy danych. W poprzedniej lekcji zaprezentowano klauzulę SELECT i WHERE, dzięki której można wybierać dane z z bazy.
Na rozgrzewkę spróbujmy przetestować klauzulę DISTINCT. Wyobraźmy sobie sytuację, w której w tabeli mamy ok miliona rekordów. W kolumnie o nazwie „NAZWY_MIEJSCOWOSCI” wpisane są nazwy różnych miejscowości. Miejscowości te mogą się jednak powtarzać, dlatego aby w odpowiedzi otrzymać same unikatowe nazwy należy użyć własnie klauzuli DISTINCT.
SELECT DISTINCT NAZWY_MIEJSCOWOSCI FROM MIEJSCOWOSCI;
W odpowiedzi otrzymaliśmy unikatowe nazwy miejscowości, ale jak wdać są one nieuporządkowane, dlatego aby to zrobić należy uzupełnić zapytanie.
SELECT DISTINCT NAZWY_MIEJSCOWOSCI FROM MIEJSCOWOSCI ORDER BY NAZWY_MIEJSCOWOSCI;
Jeśli w tabeli mamy oprócz nazw miejscowości jeszcze nazwę województwa, to możemy pogrupować również dane względem województw. W takim wypadku należy użyć podwójnego sortowania:
SELECT DISTINCT NAZWY_MIEJSCOWOSCI FROM MIEJSCOWOSCI ORDER BY NAZWY_MIEJSCOWOSCi, WOJEWODZTWA;
ORDER BY umożliwia 2 rodzaje sortowania rosnące oraz malejące. Domyślne sortowanie to ASC (tzw: ascending), dlatego aby sortować on A do Z należy użyć tej klauzuli. W przypadku chęci sortowania malejącego od Z do A należy użyć DESC (z angielskiego descending). Sortowanie to podobnie wygląda w przypadku liczb tak więc rosnoco sortuje ASC a malejąco DESC.
Spróbuj przećwiczyć na swojej bazie danych sortowania na polach liczbowych oraz tekstowych.