Dziś podręczna, graficzna ściągawka obejmująca operacje na zbiorach (union, union all, except, intersect). Definicje podaję ze sporym uproszczeniem, bez zagłębiania się w teorię bazy danych – jest to szybka ściąga przypominająca podstawowe wiadomości. Nie wszystkie z prezentowanych tutaj zapytań mają taką samą składnię w każdej bazie danych. Zależy to od implementacji.
Operacje na zbiorach
Operacje na zbiorach (typu unia, przecięcie, wykluczenie) używane są na dwóch zbiorach zawierających te same kolumny (typ danych, ilość kolumn musi być taka sama). Przykład: różnica dwóch tabel o tych samych kolumnach, lecz różnych danych wewnątrz (pierwsza tabela może zawierać dane nieprzefiltrowane, druga przefiltrowane itd.).
Zakładając, że:
- zapytanie nr 1 (Q1) zwraca następujący zestaw danych: A, B, C,
- zapytanie nr 2 (Q2) zwraca następujący zestaw danych: C, D, E,
z wyników zapytania można złożyć:
Union
Q1 union Q2 – suma zbiorów. Elementy powtarzające się zarówno w Q1 jak i w Q2 zostają usunięte. Wynikiem są elementy: A, B, C, D, E
[A B [C] D E]
Union all
Q1 union all Q2 – pełna suma zbiorów. Powtarzające się elementy nie są usuwane, dzięki czemu działa szybciej niż Union.
[A B C] [C D E]
Except
Q1 except Q2 – różnica zbiorów
[A B] C D E
Intersect
Q1 intersect Q2 – przecięcie, część wspólna zbioru
A B [C] D E
Przykładowa składnia:
SELECT * FROM Q1 UNION SELECT * FROM Q2;
Kolejnym ciekawym zagadnieniem w SQL są złączenia (join). Więcej na ten temat tu: Złączenia w SQL.