Złączenia pionowe SQL UNION, INTERSECT, EXCEPT w SQL Server

1. Złączenia pionowe w SQL Server

Złączenia pionowe w SQL służą do operacji łączenia lub wykluczania całych rekordów z tabel. Ważną zasadą jest, że złączeń pionowych możemy używać na tabelach lub widokach o takiej samej liczbie kolumn i o takich samych typach danych w kolumnach. To, czy wykonujemy złączenia pionowe na widokach, tabelach, czy na jednych i drugich łącznie, nie ma większego znaczenia. Warto zaznaczyć, że nie wszystkie typy danych możemy ze sobą łączyć. Np nie możemy ze sobą łączyć typów danych xml. W SQL Server wyróżniamy następujące typy złączeń pionowych:

  • UNION
  • UNION ALL
  • INTERSECT
  • EXCEPT

Wszystkie złączenia pionowe omówię w tym rozdziale kursu SQL Server.

2. Złączenie SQL UNION

Złączenie SQL UNION służy do łączenia dwóch tabel, widoków lub zapytań. Wynikiem UNION’a jest zestaw danych zawierający wszystkie rekordy, które wchodziły w skład obu zapytań z wyłączeniem duplikatów. Rekordy zduplikowane zostają usunięte z wyników zapytania.

Kurs SQL Server - SQL UNION
Kurs SQL Server – SQL UNION

Przykład z użyciem UNION:

SELECT kolumna_1, kolumna_2, kolumna_3 (...)
  FROM tabela a

UNION 

SELECT kolumna_1, kolumna_2, kolumna_3 (...)
  FROM tabela
;

3. Złączenie SQL UNION ALL

Złączenie SQL UNION ALL jest podobne w działaniu do złączenia UNION. Główna różnica polega na tym, że w wyniku zapytania SQL z użyciem UNION ALL duplikaty nie zostaną usunięte. Wynik będzie zawierał wszystkie rekordy z tabeli 1 i wszystkie rekordy z tabeli 2.

Kurs SQL Server - SQL UNION ALL
Kurs SQL Server – SQL UNION ALL

Przykład z użyciem UNION ALL:

SELECT kolumna_1, kolumna_2, kolumna_3 (...)
  FROM tabela a

UNION ALL

SELECT kolumna_1, kolumna_2, kolumna_3 (...)
  FROM tabela
;

4. Złączenie SQL INTERSECT

Złączenie INTERSECT SQL w odróżnieniu od UNION zwraca część wspólna rekordów z obu tabel. Tak więc, jeśli łączymy dwa zapytania za pomocą INTERSECT’a, wynikiem zapytania będą tylko te rekordy, które występowały w obu tabelach jednocześnie.

Kurs SQL Server - SQL INTERSECT
Kurs SQL Server – SQL INTERSECT

Przykład z użyciem INTERSECT:

SELECT kolumna_1, kolumna_2, kolumna_3 (...)
  FROM tabela a

INTERSECT

SELECT kolumna_1, kolumna_2, kolumna_3 (...)
  FROM tabela
;

5. Złączenie SQL EXCEPT

Złączenie EXCEPT SQL służy do wykluczania rekordów z zapytań. Zwraca rekordy z Tabeli 1, które jednocześnie nie występują w Tabeli 2. EXCEPT’a używamy w przypadkach, gdy np posiadamy tabelę rekordów, których nie chcemy w widzieć  wynikach zapytania SQL. za pomocą EXCEPT łatwo możemy je wykluczyć.

Kurs SQL Server - SQL EXCEPT
Kurs SQL Server – SQL EXCEPT

Przykład z użyciem EXCEPT:

SELECT kolumna_1, kolumna_2, kolumna_3 (...)
  FROM tabela a

EXCEPT

SELECT kolumna_1, kolumna_2, kolumna_3 (...)
  FROM tabela
;

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Komentarz do “Złączenia pionowe SQL UNION, INTERSECT, EXCEPT w SQL Server”