UNION i UNION ALL to dwa najważniejsze operatory SQL używane w bazie danych do łączenia zestawu wyników z wielu tabel. Operatory te pozwalają nam używać wielu zapytań SELECT, pobierać żądane wyniki, a następnie łączyć je w końcowy wynik . W tym artykule zobaczymy, czym się od siebie różnią. Przed dokonaniem porównania omówimy pokrótce te operatory.
Kim jest operator unijny?
Operator Union w MySQL pozwala nam łączyć dwa lub więcej wyników z wielu zapytań SELECT w jeden zestaw wyników. Posiada domyślną funkcję usuń zduplikowane wiersze ze stołów. Ta składnia operatora zawsze używa nazwy kolumny w pierwszej instrukcji SELECT jako nazwy kolumny danych wyjściowych.
MySQL-a Unia musi przestrzegać następujących podstawowych zasad:
- Liczba i kolejność kolumn powinna być taka sama we wszystkich zapytaniach.
- Odpowiednia pozycja kolumn każdego zapytania wybierającego musi mieć zgodny typ danych.
- Nazwa kolumny wybrana w różnych zapytaniach SELECT musi być w tej samej kolejności.
- Nazwa kolumny pierwszego zapytania SELECT będzie nazwą kolumny wyniku.
UWAGA: Musimy wiedzieć, że Union i Join są różne.
- JOIN łączy dane z wielu różnych tabel, podczas gdy UNION łączy dane z wielu podobnych tabel.
- JOIN dołącza wynik w poziomie, podczas gdy UNION łączy zestaw wyników w pionie.
Poniższa wizualna reprezentacja wyjaśnia to jaśniej:
Aby przeczytać więcej informacji o operatorze Union, kliknij tutaj.
jak sprawdzić zablokowane numery na Androidzie
Co to jest Unia Wszystkich?
Operator UNION ALL łączy dwa lub więcej wyników z wielu zapytań SELECT i zwraca wszystkie rekordy w jeden zestaw wyników. Nie usuwa zduplikowanych wierszy z wyników instrukcji SELECT.
Możemy to zrozumieć za pomocą następującej reprezentacji wizualnej.
Unia kontra Union All Operator
Poniższa tabela porównawcza wyjaśnia w szybki sposób główne różnice między nimi:
UNIA | UNIA WSZYSTKICH |
---|---|
Łączy zestaw wyników z wielu tabel i zwraca różne rekordy w jeden zestaw wyników. | Łączy zestaw wyników z wielu tabel i zwraca wszystkie rekordy w jeden zestaw wyników. |
Poniżej znajduje się podstawa składnia operatora UNION: WYBIERZ listę_kolumn Z tabeli 1 UNIA WYBIERZ listę_kolumn Z tabeli2; | Poniżej znajduje się podstawa składnia operatora UNION ALL: WYBIERZ listę_kolumn Z tabeli 1 UNIA WSZYSTKICH WYBIERZ listę_kolumn Z tabeli2; |
Posiada domyślną funkcję eliminowania zduplikowanych wierszy z wyników. | Nie ma funkcji eliminującej zduplikowane wiersze z wyników. |
Jego wydajność jest powolna ponieważ znalezienie i usunięcie zduplikowanych rekordów zajmuje trochę czasu. | Jego wydajność jest szybka ponieważ nie eliminuje to zduplikowanych wierszy. |
Większość użytkowników baz danych woli używać tego operatora. | Większość użytkowników baz danych nie woli używać tego operatora. |
Przykład Unii i Unii
Pozwól nam zrozumieć różnice między operatorami Union i Union All na przykładzie. Załóżmy, że mamy tabelę o nazwie „ Student ' I ' Student2 ', który zawiera następujące dane:
Tabela: Student
Tabela: Student2
Następująca instrukcja SQL zwraca odrębna nazwa miasta z obu tabel za pomocą zapytania UNION:
abc z liczbami
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
Po wykonaniu powyższej instrukcji otrzymamy poniższe dane wyjściowe, ponieważ operator Union zwraca tylko odrębne wartości.
Następująca instrukcja SQL powraca wszystkie nazwy miast, łącznie z duplikatami z obu tabel za pomocą zapytania UNION ALL:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
Po wykonaniu powyższej instrukcji otrzymamy poniższy wynik, ponieważ operator Union All zwraca całe rekordy bez eliminowania odrębnych wartości.