Wstęp
Być może zauważasz, w wynikach zapytań z poprzednich lekcji, powtarzające się wartości w kolumnie owner. Jest to nazwa twórcy, właściciela tabeli.
Jak wybrać listę właścicieli posiadających choć jedną tabelę z widoku all_tables?
Rozwiązaniem prezentowanym w tej lekcji jest użycie słowa kluczowego DISTINCT.
Użycie DISTINCT
DISTINCT służy do eliminacji duplikatów danych ze zwracanego wyniku. W poleceniu SQL wstawiasz DISTINCT zaraz po poleceniu SELECT. Dzięki temu wiersze wyniku składające się z danych, ze wszystkich kolumn wypisanych po DISTINCT będą unikalne.
Na początek spróbuj z jedną kolumną. Napisz zapytanie zwracające unikalne wartości z kolumny owner widoku all_tables. Może wyglądać tak:
SELECT DISTINCT owner FROM all_tables;
A mój wynik wygląda tak:
OWNER
---------------------
OUTLN
SYS
DBSNMP
SYSTEM
XDB
APPQOSSYS
AUDSYS
7 rows selected.
Pokazuje unikalne wartości kolumny owner.
Gdy po DISTINCT wypiszesz dwie kolumny motor bazy danych zwróci Ci unikalne pary wartości. To samo oczywiście z większą ilością kolumn.

Wydajność DISTINCT
Warto pamiętać, że użycie DISTINCT oznacza sortowanie. Gdy piszesz zapytanie ad hoc, na stosunkowo małej ilości danych, to nie powinno być problemu.
Niemniej gdy zamierzasz użyć takiej formuły w zapytaniu, które będzie wykonywane wielokrotnie i to przez wielu użytkowników to lepiej znaleźć inny sposób uzyskania unikalności danych. Użycie DISTINCT spowoduje większe zużycie zasobów motoru bazy danych. Twoja aplikacja może nie działać tak wydajnie jak by mogła.
W internetach można się spotkać z opiniami, że użycie DISTINCT wynika z nieumiejętności w SQL, nieznajomości danych lub złego projektu bazy danych. Podzielam te opinie.
Podsumowanie
Gratuluję Ci ukończenia szóstej lekcji darmowej edycji mojego kursu 'Podstawy SQL dla użytkowników Oracle’. Wiesz z niej jak w najprostszy sposób uzyskać unikalność danych w wyniku zapytania.
Zadanie dla Ciebie: napisz zapytanie zwracające unikalne pary wartości kolumn owner i tablespace_name z widoku all_tables. Wynik ogranicz do dziesięciu wierszy zaczynając od piątego. Zrób zrzut ekranu i pochwal się swoim osiągnięciem na discordzie. Dedykowany serwer: Marcin Badtke – bazy danych i SQL.
Wiesz już jak wymuszać unikalność wyniku zapytania. W następnej lekcji pokażę Ci jak policzyć interesujące Cię wiersze w tabeli.
Gratuluję Ci ukończenia szóstej lekcji darmowej edycji mojego kursu 'Podstawy SQL dla użytkowników Oracle’. Skomentuj poniżej jak Ci się podobała.
Jak policzyć wiersze w tabeli? Pokażę Ci w następnej lekcji. Chodź.