Bazy danych

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.