Obsługując dane w bazach danych, często używamy operatorów mnogościowych w SQL, aby pobierać dane zgodnie z naszymi wymaganiami, łącząc dwie lub więcej instrukcji SELECT. W tym artykule o SQL UNION omówię operator UNION używany do pobierania danych w następującej kolejności:
- Co to jest operator SQL UNION?
- Składnia:
- Składnia UNION
- Składnia UNION ALL
- Różnice między UNION a UNION ALL
- Przykłady UNION SQL:
- Przykład operatora UNION
- Przykład operatora UNION ALL
- UNION z aliasami SQL
- UNION z klauzulą WHERE
- UNION ALL z klauzulą WHERE
- ZWIĄZEK Z POŁĄCZENIAMI
- UNON ALL with JOINS
Zacznijmy!
Co to jest operator SQL UNION?
Jak sugeruje nazwa, ten operator/klauzula służy do łączenia wyników dwóch lub więcej instrukcji SELECT. Tutaj każda instrukcja SELECT używana w instrukcji UNION musi mieć taką samą liczbę kolumn w tej samej kolejności. Ponadto wszystkie kolumny obecne w instrukcjach SELECT muszą mieć podobne typy danych.
Klauzula UNION podaje jako dane wyjściowe tylko unikalne wartości. Na wszelki wypadek, jeśli chcesz zduplikować wartości, musisz użyć klauzuli UNION ALL.
Przechodząc dalej w tym artykule na temat SQL UNION, pozwól nam zrozumieć składnię.
Składnia UNION SQL
Składnia UNION
SELECT Kolumna1, Kolumna2, Kolumna3, ..., KolumnaN FROM Tabela1UNIONSELECT Kolumna1, Kolumna2, Kolumna3, ..., KolumnaN FROM Tabela2;
Składnia UNION ALL
SELECT Kolumna1, Kolumna2, Kolumna3, ..., KolumnaN FROM Tabela1UNION ALLSELECT Kolumna1, Kolumna2, Kolumna3, ..., KolumnaN FROM Tabela2;
Kontynuując ten artykuł, zrozumiemy różnice między UNION i UNION ALL.
Różnice między SQL UNION a UNION ALL
UNION | ZŁĄCZ WSZYSTKIE |
Łączy dwa lub więcej zestawów wyników i nie zachowuje zduplikowanych wartości. | Łączy dwa lub więcej zestawów wyników i zachowuje zduplikowane wartości. |
Składnia: UNIA | Składnia: UNION WSZYSTKO |
Następnie, w tym artykule o SQL UNION, zrozumiemy różne sposoby użycia tego operatora.
Przykłady SQL UNION i UNION ALL
Dla lepszego zrozumienia rozważę poniższe tabele, aby pokazać różne przykłady.
Tabela pracowników
EmpID | Nazwa | EmpAge | Miasto | Kod pocztowy | Kraj |
1 | Emma | 23 | Berlin | 12109 | Niemcy |
2 | Rahul | 26 | Bombaj | 400015 | Indie |
3 | Aayra | 24 | Nowy Jork | 10014 | USA |
4 | Jan | 32 | Londyn | E1 7AE | Wielka Brytania |
5 | Derek | 29 | Nowy Jork | 10012 | USA |
Tabela projektów
Identyfikator projektu | Nazwa | Dni robocze | Miasto | Kod pocztowy | Kraj |
1 | Projekt 1 | 10 | Berlin | 12109 | Niemcy |
2 | Projekt 2 | 7 | Bombaj | 400015 | Indie |
3 | Projekt 3 | 20 | Delhi | 11006 | Indie |
4 | Projekt 4 | 15 | Bombaj | 400015 | Indie |
5 | Projekt 5 | 28 | Berlin | 12109 | Niemcy |
Zacznijmy od przykładów.
Przykłady SQL UNION
Przykład operatora UNION
Napisz zapytanie, aby pobrać różne miasta z tabeli Pracownicy i projekty.
SELECT Miasto FROM PracownicyUNIONSELECT Miasto FROM ProjektyORDER BY Miasto;
Wyjście:
Miasto |
Berlin |
Delhi |
Londyn |
Bombaj |
Nowy Jork |
Przykład operatora UNION ALL
Napisz zapytanie, aby pobrać miasta z tabeli Pracownicy i projekty. Tutaj należy uwzględnić zduplikowane wartości.
SELECT Miasto FROM PracownicyUNION ALLSELECT Miasto FROM ProjektyORDER BY Miasto;
Wyjście:
Miasto |
Berlin |
Berlin |
Berlin |
Delhi |
Londyn |
Bombaj |
Bombaj
|
Bombaj |
Nowy Jork |
Nowy Jork |
W dalszej części tego artykułu wyjaśnimy, jak używać klauzuli UNION z aliasami SQL.
UNION z aliasami SQL
Aliasy SQL służą do nadania tabeli lub kolumnie tymczasowej nazwy. Napiszmy więc zapytanie, aby wyświetlić listę wszystkich unikalnych pracowników i projektów.
SELECT „Pracownik” AS Typ, imię i nazwisko, miasto, krajFROM PracownicyUNIONSELECT „Projekt”, nazwa, miasto, krajFROM Projekty;
Wyjście:
Typ | Nazwa | Miasto | Kraj |
Pracownik | Emma | Berlin | Niemcy |
Pracownik | Rahul | Bombaj | Indie |
Pracownik | Aayra | Nowy Jork | USA |
Pracownik | Jan | Londyn | Wielka Brytania |
Pracownik | Derek | Nowy Jork | USA |
Projekt | Projekt 1 | Berlin | Niemcy |
Projekt | Projekt 2 | Bombaj | Indie |
Projekt | Projekt 3 | Delhi | Indie |
Projekt | Projekt 4 | Bombaj | Indie |
Projekt | Projekt 5 | Berlin | Niemcy |
UNION z klauzulą WHERE
Napisz zapytanie, aby pobrać różne indyjskie miasta i ich kody pocztowe z tabeli Pracownicy i Projekty.
SELECT Miasto, kod pocztowy, kraj FROM EmployeesWHERE Kraj='Indie'UNIONSELECT Miasto, kod pocztowy, kraj FROM ProjektyWHERE Kraj='Indie'ORDER BY Miasto;
Wyjście:
Miasto | Kod pocztowy | Kraj |
Delhi | 11006 | Indie |
Bombaj | 400015 | Indie |
UNION ALL z klauzulą WHERE
Napisz zapytanie, aby pobrać indyjskie miasta i ich kody pocztowe z tabeli Pracownicy i Projekty, w której dozwolone są zduplikowane wartości
SELECT Miasto, kod pocztowy, kraj FROM EmployeesWHERE Kraj='Indie'UNION ALLSELECT Miasto, kod pocztowy, kraj FROM ProjektyWHERE Kraj='Indie'ORDER BY Miasto;
Wyjście:
Miasto | Kod pocztowy | Kraj |
Delhi | 11006 | Indie |
Bombaj | 400015 | Indie |
Bombaj | 400015 | Indie |
Bombaj | 400015 | Indie |
Idąc dalej w tym artykule, pozwól nam zrozumieć, jak używać klauzul UNION i UNION ALL z JOINS. JOINS w SQL to polecenia używane do łączenia wierszy z dwóch lub więcej tabel na podstawie powiązanej kolumny między tymi tabelami.
UNION z JOINS
Operatora SQL UNION można używać z SQL JOINS do pobierania danych z dwóch różnych tabel. Jako przykład rozważę poniższą tabelę wraz z tabelą Pracownicy.
Tabela szczegółów projektu
PID | Dni robocze | EmpID | CostforProject |
11 | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | 1 | 60000 |
44 | 25 | 3 | 45000 |
55 | 21 | 1 | 50000 |
SELECT EmpID, Nazwa, CostforProject FROM Pracownicy LEFT JOIN ProjectDetails ON Pracownicy.EmpID =ProjectDetails.EmpIDUNION SELECT EmpID, Name, CostforProject FROM Pracownicy RIGHT JOIN ProjectDetails ON Pracownicy.EmpID =ProjectDetails.EmpID;Wyjście:
EmpID | Nazwa | CostforProject |
1 | Emma | 60000 |
1 | Emma | 50000 |
2 | Rahul | NULL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Jan | 20000 |
5 | Derek | NULL |
UNON ALL z JOINS
Napisz zapytanie, aby pobrać EmpID, Name i CostforProject z tabeli Employees i ProjectDetails, gdzie dozwolone są zduplikowane wartości.
SELECT EmpID, Nazwa, CostforProject FROM Employees LEFT JOIN ProjectDetails ON Pracownicy.EmpID =ProjectDetails.EmpIDUNION ALL SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON Employees.EmpID =ProjectDetails.EmpID;EmpID;
Wyjście:
EmpID | Nazwa | CostforProject |
1 | Emma | 60000 |
1 | Emma | 50000 |
2 | Rahul | NULL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Jan | 20000 |
5 | Derek | NULL |
4 | Jan | 20000 |
3 | Aayra | 35000 |
1 | Emma | 60000 |
3 | Aayra | 35000 |
1 | Emma | 50000 |
W ten sposób dochodzę do końca tego artykułu o SQL UNION. Mam nadzieję, że spodobał Ci się ten artykuł na temat SQL UNION. Widzieliśmy różne sposoby używania poleceń UNION i UNION ALL, aby pomóc w pisaniu zapytań. Jeśli chcesz dowiedzieć się więcej o MySQL i poznać tę relacyjną bazę danych typu open source, sprawdź naszą MySQL DBA Szkolenie certyfikacyjne który jest dostarczany z prowadzonym przez instruktora szkoleniem na żywo i doświadczeniem w rzeczywistych projektach. To szkolenie pomoże ci dogłębnie zrozumieć MySQL i pomoże ci osiągnąć mistrzostwo w tym temacie.
Masz do nas pytanie? Proszę wspomnieć o tym w sekcji komentarzy „SQL UNION”, a ja odezwę się do Ciebie.