sql >> Database teknologi >  >> RDS >> Database

SQL Union – En omfattende vejledning om UNION-operatøren

Mens vi håndterer data i databaser, har vi ofte en tendens til at bruge sæt-operatorerne i SQL, for at hente data i overensstemmelse med vores krav ved at kombinere to eller flere SELECT-sætninger. I denne artikel om SQL UNION vil jeg diskutere UNION-operatoren, der bruges til at hente data i følgende rækkefølge:

  • Hvad er SQL UNION-operatoren?
  • Syntaks:
    1. UNION-syntaks
    2. UNION ALL-syntaks
  • Forskelle mellem UNION og UNION ALL
  • Eksempler på SQL UNION:
    1. UNION-operatøreksempel
    2. Eksempel på UNION ALL-operatør
    3. UNION med SQL-aliaser
    4. UNION med WHERE-sætning
    5. UNION ALL med WHERE-sætning
    6. UNION med JOINS
    7. UNION ALLE med JOINS

Lad os komme i gang!

Hvad er SQL UNION-operatoren?

Som navnet antyder, bruges denne operator/sætning til at kombinere resultaterne af to eller flere SELECT-sætninger. Her skal hver SELECT-sætning, der bruges i UNION-sætningen, have det samme antal kolonner i samme rækkefølge. Desuden skal alle kolonner, der er til stede i SELECT-sætningerne, have lignende datatyper.

UNION-sætningen giver kun unikke værdier som output. Bare hvis du vil have duplikerede værdier, så skal du bruge UNION ALL-sætningen.

Vi går videre i denne artikel om SQL UNION, så lad os forstå syntaksen.

SQL UNION-syntaks

UNION-syntaks

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1UNIONSELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

UNION ALL-syntaks

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1UNION ALLSELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

Lad os gå videre i denne artikel og forstå forskellene mellem UNION og UNION ALL.

Forskelle mellem SQL UNION og UNION ALL

UNION UNION ALLE
Kombinerer to eller flere resultatsæt og beholder ikke de duplikerede værdier. Kombinerer to eller flere resultatsæt og beholder de duplikerede værdier.
Syntaks: UNION
Syntaks: UNION ALLE

Lad os derefter i denne artikel om SQL UNION forstå de forskellige måder at bruge denne operator på.

Eksempler på SQL UNION og UNION ALL

For din bedre forståelse vil jeg overveje følgende tabeller for at vise dig forskellige eksempler.

Medarbejdertabel

EmpID Navn EmpAge By Postnummer Land
1 Emma 23 Berlin 12109 Tyskland
2 Rahul 26 Mumbai 400015 Indien
3 Aayra 24 New York 10014 USA
4 John 32 London E1 7AE UK
5 Derek 29 New York 10012 USA

Tabel over projekter

Projekt-ID Navn Arbejdsdage By Postnummer Land
1 Projekt 1 10 Berlin 12109 Tyskland
2 Projekt 2 7 Mumbai 400015 Indien
3 Projekt 3 20 Delhi 110006 Indien
4 Projekt 4 15 Mumbai 400015 Indien
5 Projekt 5 28 Berlin 12109 Tyskland

Lad os komme i gang med eksempler.

SQL UNION-eksempler

UNION-operatøreksempel

Skriv en forespørgsel for at hente forskellige byer fra tabellen Medarbejdere og projekter.

VÆLG by FRA medarbejdereUNIONVÆLG by FRA projekter BESTIL EFTER by;

Output:

By

Berlin

Delhi

London

Mumbai

New York

UNION ALL-operatøreksempel

Skriv en forespørgsel for at hente byer fra tabellen Medarbejdere og projekter. Her skal duplikerede værdier medtages.

 VÆLG By FRA MedarbejdereUNION ALLE VÆLG By FRA Projekter BESTIL EFTER By; 

Output:

By

Berlin

Berlin

Berlin

Delhi

London

Mumbai

Mumbai

Mumbai

New York

New York

Lad os næste gang i denne artikel forstå, hvordan man bruger UNION-sætningen med SQL-aliaser.

UNION med SQL-aliaser

SQL-aliaser bruges til at give en tabel eller en kolonne et midlertidigt navn. Så lad os skrive en forespørgsel for at liste alle de unikke medarbejdere og projekter.

VÆLG 'Employee' AS Type, Name, City, CountryFROM EmployeesUNIONSELECT 'Project', Name, City, CountryFROM Projects;

Output:

Type Navn By Land
Medarbejder Emma Berlin Tyskland
Medarbejder Rahul Mumbai Indien
Medarbejder Aayra New York USA
Medarbejder John London UK
Medarbejder Derek New York USA
Projekt Projekt 1 Berlin Tyskland
Projekt Projekt 2 Mumbai Indien
Projekt Projekt 3 Delhi Indien
Projekt Projekt 4 Mumbai Indien
Projekt Projekt 5 Berlin Tyskland

UNION med WHERE-klausul

Skriv en forespørgsel for at hente de adskilte indiske byer og deres postnumre fra tabellen med både medarbejdere og projekter.

SELECT City, Postal Code, Country FROM EmployeesWHERE Country='India'UNIONSELECT City, Postal Code, Country FROM ProjectsWHERE Country='India'ORDER BY City;

Output:

By Postnummer Land
Delhi 110006 Indien
Mumbai 400015 Indien

UNION ALL med WHERE-klausul

Skriv en forespørgsel for at hente indiske byer og deres postnumre fra tabellen med både medarbejdere og projekter, hvor duplikerede værdier er tilladt

SELECT City, Postal Code, Country FROM EmployeesWHERE Country='India'UNION ALLSELECT City, Postal Code, Country FROM ProjectsWHERE Country='India'ORDER BY By;

Output:

By Postnummer Land
Delhi 110006 Indien
Mumbai 400015 Indien
Mumbai 400015 Indien
Mumbai 400015 Indien

Vi går videre i denne artikel og lad os forstå, hvordan man bruger UNION- og UNION ALL-sætningerne med JOINS. JOINS i SQL er kommandoer, der bruges til at kombinere rækker fra to eller flere tabeller, baseret på en relateret kolonne mellem disse tabeller.

UNION med JOINS

SQL UNION-operatoren kan bruges med SQL JOINS til at hente data fra to forskellige tabeller. Jeg vil overveje følgende tabel sammen med tabellen Medarbejdere for eksemplet.

Tabel med projektdetaljer

PID Arbejdsdage EmpID CostforProject
11 12 4 20000
22 16 3 35.000
33 30 1 60000
44 25 3 45000
55 21 1 50000
VÆLG EmpID, Navn, CostforProject FRA Medarbejdere VENSTRE JOIN ProjectDetails PÅ Employees.EmpID =ProjectDetails.EmpIDUNION VÆLG EmpID, Navn, CostforProject FRA Medarbejdere HØJRE JOIN ProjectDetails ON Employees.EmpID =ProjectIDDetails;. 

Output:

EmpID Navn CostforProject
1 Emma 60000
1 Emma 50000
2 Rahul NULL
3 Aayra 35.000
3 Aayra 45000
4 John 20000
5 Derek NULL

UNION ALLE med JOINS

Skriv en forespørgsel for at hente EmpID, Name og CostforProject fra tabellen Employees og ProjectDetails, hvor duplikerede værdier er tilladt.

VÆLG EmpID, Navn, CostforProject FRA Medarbejdere VENSTRE JOIN ProjectDetails PÅ Employees.EmpID =ProjectDetails.EmpIDUNION ALLE VÆLG EmpID, Navn, CostforProject FRA Medarbejdere HØJRE JOIN ProjectDetails ON Employees.EmpID.> =ProjectDetails;

Output:

EmpID Navn CostforProject
1 Emma 60000
1 Emma 50000
2 Rahul NULL
3 Aayra 35.000
3 Aayra 45000
4 John 20000
5 Derek NULL
4 John 20000
3 Aayra 35.000
1 Emma 60000
3 Aayra 35.000
1 Emma 50000

Hermed kommer jeg til slutningen af ​​denne artikel om SQL UNION. Jeg håber, du nød at læse denne artikel om SQL UNION. Vi har set de forskellige måder at bruge kommandoerne UNION og UNION ALL til at hjælpe dig med at skrive forespørgsler. Hvis du ønsker at lære mere om MySQL og lære denne open source relationsdatabase at kende, så tjek vores MySQL DBA Certificeringstræning som kommer med instruktørledet livetræning og projekterfaring i det virkelige liv. Denne træning vil hjælpe dig med at forstå MySQL i dybden og hjælpe dig med at opnå beherskelse over emnet.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i "SQL UNION", så vender jeg tilbage til dig.


  1. PHP MySQL Google Chart JSON - Komplet eksempel

  2. Hvordan viser man alle privilegier fra en bruger i Oracle?

  3. Sådan opsætter du fjernforbindelse til PostgreSQL

  4. Ruby on Rails 3 Kan ikke oprette forbindelse til lokal MySQL-server gennem socket '/tmp/mysql.sock' på OSX