Database
 sql >> Baza danych >  >> RDS >> Database

SQL Union — kompleksowy przewodnik po operatorze UNION

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:
    1. Składnia UNION
    2. Składnia UNION ALL
  • Różnice między UNION a UNION ALL
  • Przykłady UNION SQL:
    1. Przykład operatora UNION
    2. Przykład operatora UNION ALL
    3. UNION z aliasami SQL
    4. UNION z klauzulą ​​WHERE
    5. UNION ALL z klauzulą ​​WHERE
    6. ZWIĄZEK Z POŁĄCZENIAMI
    7. 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń posty i komentarze z Harmonogramu akcji

  2. Samouczek SQL dla początkujących

  3. Jakich umiejętności i wiedzy potrzebują projektanci baz danych?

  4. Stosowanie reguł terenowych za pomocą klasyfikacji

  5. Mity dotyczące wydajności:Obcięcie nie może zostać wycofane