BD-1st-2.4-lab1.tresc-1.1-Slajd22

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Eliminacja duplikatów

Eliminacja duplikatów


Przy realizacji zapytań może się zdarzyć, że w relacji wynikowej znajdzie się kilka krotek o takich samych wartościach na wszystkich odczytanych atrybutach. Przykładowo, jeżeli wykonamy zapytanie:

SELECT etat FROM pracownicy;

Niektóre etaty mogą w relacji wynikowej pojawić się wielokrotnie. W takiej sytuacji najczęściej możemy chcieć usunąć duplikaty pozostawiając jedynie po jednym egzemplarzu każdej krotki. Do przeprowadzenia takiej operacji służy klauzula DISTINCT, którą należy podać po słowie kluczowym SELECT. Jeżeli klauzula DISTINCT pojawi się po SELECT, SZBD usunie wszystkie duplikaty krotek z relacji wynikowej. Podsumowując, rozszerzona składnia polecenia SELECT wygląda następująco:


SELECT [DISTINCT] {wyrażenie1 [AS alias1], wyrażenie2 [AS alias2],.....} FROM {nazwa relacji};


Przykładowe polecenie przedstawione na slajdzie:

SELECT DISTINCT etat FROM pracownicy;

znajduje wszystkie różne nazwy etatów na których zatrudnieni są pracownicy. Należy tutaj zwrócić uwagę na jedną rzecz. Teoretycznie ten sam wynik moglibyśmy uzyskać wykonując proste zapytanie do relacji etaty:

SELECT nazwa FROM etaty;

Czym zatem różnią się oba powyższe polecenia? Otóż, pierwsze polecenie zwróci wszystkie etaty na których zatrudnieni są jacyś pracownicy, podczas gdy drugie zwróci wszystkie etaty zdefiniowane w bazie danych, nawet takie, na których nie jest zatrudniony żaden pracownik.


<< Poprzedni slajd | Spis treści | Następny slajd >>