czwartek, 8 czerwca 2017

Lekcja 23. Operatory zestawu

Operatory zestawu umożliwiają łączenie wierszy zwracanych przez dwa zapytania lub więcej.
Gdy korzysta się z operatorów zestawu, należy pamiętać o następujących ograniczeniach: liczba kolumn i typy kolumn muszą być takie samie, nazwy natomiast mogą się różnić.

Przykładowe dane
Aby zobrazować działanie operatorów zestawu musimy przygotować dane, na których będzie operować. Rozważmy dwa zestawy danych pobrane przez poniższe zapytania. Będziemy się nimi posługiwać do końca tej lekcji.

Pierwsze z nich pobiera kolumny cust_no, customer z tabeli customer 
gdzie cust_no < 1011.


Drugie z nich pobiera kolumny cust_no, customer z tabeli customer 
gdzie cust_no > 1007.


Operator UNION ALL
Operator UNION ALL zwraca wszystkie wiersze pobrane przez zapytanie, łącznie z tymi powtarzającymi się. W powyższym zapytaniu użyto operatora UNION ALL:


W zestawie wyników znajdują się wszystkie wiersze z obu poprzednich zapytań, razem z tymi powtarzającymi się.

Operator UNION
Operator UNION zwraca jedynie niepowtarzające się wiersze zwrócone przez zapytanie. W powyższym przykładzie wykorzystano operator UNION:


Powtarzające się wiersze Anini Vacation Rentals, Max oraz MPM Corporation nie zostały pobrane dwukrotnie, więc w wynikach pojawiło się tylko 15 wierszy.

Operator INTERSECT
Operator INTERSECT zwraca wiersze, które zostały pobrane przez obydwa zapytania. Firebird nie obsługuje operatora INTERSECT. Jednakże można zasymulować działanie tego operator np. poprzez poniższe zapytanie:

Zostały zwrócone wiersze Anini Vacation Rentals, Max i MPM Corporation.

Operator MINUS
Operator MINUS zwraca wiersze pozostałe po odjęciu wierszy pobranych przez drugie zapytanie od wierszy pobranych przez pierwsze zapytanie.. Firebird nie obsługuje operatora MINUS. Jednakże można zasymulować działanie tego operator np. poprzez poniższe zapytania:


Wiersze zwrócone przez pierwsze zapytanie zostały odjęte od wierszy zwróconych przez drugie zapytanie i zostały zwrócone w wynikach.


W tym przypadku natomiast wiersze zwrócone przez drugie zapytanie zostały odjęte od wierszy zwróconych przez pierwsze zapytanie i zostały zwrócone w wynikach.


Brak komentarzy:

Prześlij komentarz