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:
- UNION-syntaks
- UNION ALL-syntaks
- Forskelle mellem UNION og UNION ALL
- Eksempler på SQL UNION:
- UNION-operatøreksempel
- Eksempel på UNION ALL-operatør
- UNION med SQL-aliaser
- UNION med WHERE-sætning
- UNION ALL med WHERE-sætning
- UNION med JOINS
- 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.