Med obdelavo podatkov v zbirkah podatkov pogosto uporabljamo nastavljene operaterje v SQL , za pridobitev podatkov v skladu z našimi zahtevami s kombiniranjem dveh ali več stavkov SELECT. V tem članku o SQL UNION bom obravnaval operator UNION, ki se uporablja za pridobivanje podatkov v naslednjem zaporedju:
Začnimo!
Kaj je operater SQL UNION?
Kot že ime pove, se ta operator / stavek uporablja za združevanje rezultatov dveh ali več stavkov SELECT. Tu mora imeti vsak stavek SELECT, uporabljen v stavku UNION, enako število stolpcev v istem vrstnem redu. Vsi stolpci, ki so prisotni v stavkih SELECT, morajo imeti podobne vrste podatkov.
Klavzula UNION daje kot izhod samo edinstvene vrednosti. Za vsak slučaj želite podvojene vrednosti, potem morate uporabiti stavek UNION ALL.
Nadaljujemo v tem članku o SQL UNION, dajmo razumeti sintakso.
Sintaksa SQL UNION
Sintaksa UNION
IZBERI stolpec1, stolpec2, stolpec3, ..., stolpecN IZ tabele1 UNION SELECT stolpec1, stolpec2, stolpec3, ..., stolpecN IZ tabele2
Sintaksa UNION ALL
IZBERI stolpec1, stolpec2, stolpec3, ..., stolpecN IZ tabele1 UNION ALL SELECT stolpec1, stolpec2, stolpec3, ..., stolpecN IZ tabele2
Nadaljujemo s tem člankom, da bomo razumeli razlike med UNION in UNION ALL.
Razlike med SQL UNION in UNION ALL
UNIJA | UNIJA VSE |
Združuje dva ali več nabora rezultatov in ne obdrži podvojenih vrednosti. | Združuje dva ali več nabora rezultatov in ohranja podvojene vrednosti. |
Sintaksa: UNIJA | Sintaksa: UNIJA VSE |
Nato v tem članku o SQL UNION razložimo različne načine uporabe tega operaterja.
Primeri SQL UNION in UNION ALL
Za vaše boljše razumevanje bom upošteval naslednje tabele, da vam pokažem različne primere.
Tabela zaposlenih
EmpID | Ime | EmpAge | Mesto | Poštna številka | Država |
eno | Emma | 2. 3 | Berlin | 12109 | Nemčija |
2. | Rahul | 26. | Mumbaj | 400015 | Indija |
3. | Aayra | 24. | New York | 10014 | UPORABE |
4. | Janez | 32 | London | E1 7AE | Združeno kraljestvo |
5. | Derek | 29. | New York | 10012 | UPORABE |
Tabela projektov
ProjectID | Ime | Delovni dnevi | Mesto | Poštna številka | Država |
eno | Projekt 1 | 10. | Berlin | 12109 | Nemčija |
2. | Projekt 2 | 7. | Mumbaj | 400015 | Indija |
3. | Projekt 3 | dvajset | Delhi | 110006 | Indija |
4. | Projekt 4 | petnajst | Mumbaj | 400015 | Indija |
5. | Projekt 5 | 28. | Berlin | 12109 | Nemčija |
Začnimo s primeri.
Primeri SQL UNION
Primer operaterja UNION
Napišite poizvedbo za iskanje različnih mest iz tabele Zaposleni in projekti.
IZBIRAJ Mesto OD ZAPOSLENIH UNIJA IZBERI Mesto IZ Projektov NAROČI PO MESTU
Izhod:
Mesto |
Berlin |
Delhi |
London string je v javi spremenljiv ali nespremenljiv |
Mumbaj |
New York |
Primer operaterja UNION ALL
Napišite poizvedbo za iskanje mest iz tabele Zaposleni in projekti. Tu morajo biti vključene podvojene vrednosti.
IZBIRAJ Mesto OD ZAPOSLENIH ZDRUŽI VSE IZBERI Mesto IZ Projektov UREDI PO MESTU
Izhod:
Mesto |
Berlin |
Berlin |
Berlin |
Delhi |
London |
Mumbaj |
Mumbaj |
Mumbaj |
New York |
New York |
Naslednje v tem članku bomo razumeli, kako uporabljati stavek UNION z vzdevki SQL.
UNION z vzdevki SQL
Uporabljajo se vzdevki SQLda tabeli ali stolpcu das začasno ime. Torej, napišite poizvedbo, v kateri bomo navedli vse edinstvene zaposlene in projekte.
SELECT 'Employee' AS Type, Name, City, Country FROM Zaposleni UNION SELECT 'Project', Name, City, Country FROM Projects
Izhod:
Tip | Ime | Mesto | Država |
Zaposleni | Emma | Berlin | Nemčija |
Zaposleni | Rahul | Mumbaj | Indija |
Zaposleni | Aayra | New York | UPORABE |
Zaposleni | Janez | London | Združeno kraljestvo |
Zaposleni | Derek | New York | UPORABE |
Projekt | Projekt 1 | Berlin | Nemčija |
Projekt | Projekt 2 | Mumbaj | Indija |
Projekt | Projekt 3 | Delhi | Indija |
Projekt | Projekt 4 | Mumbaj | Indija |
Projekt | Projekt 5 | Berlin | Nemčija |
UNION s klavzulo WHERE
Napišite poizvedbo za pridobivanje različnih indijskih mest in njihovih poštnih številk iz tabele Zaposleni in Projekti.
IZBERI Mesto, Poštno Številko, Država FROM Zaposleni KJE država = 'Indija' UNIJA IZBERI Mesto, Poštna Številka, Država IZ Projekti KJE Država = 'Indija' NAROČI PO Mesto
Izhod:
Mesto | Poštna številka | Država |
Delhi | 110006 | Indija |
Mumbaj | 400015 | Indija |
UNION ALL s klavzulo WHERE
Napišite poizvedbo za pridobivanje indijskih mest in njihovih poštnih številk iz tabele Zaposleni in Projekti, kjer so dovoljene podvojene vrednosti
IZBERI Mesto, Poštno Številko, Država FROM Zaposleni KJE Država = 'Indija' UNIJA VSE IZBERI Mesto, Poštna Številka, Država IZ Projekti KJE Država = 'Indija' NAROČI PO Mesto
Izhod:
Mesto | Poštna številka | Država |
Delhi | 110006 | Indija |
Mumbaj | 400015 | Indija |
Mumbaj | 400015 | Indija |
Mumbaj | 400015 | Indija |
V tem članku bomo razumeli, kako uporabljati klavzuli UNION in UNION ALL z JOINS.JOINS v SQL so ki se uporabljajo za kombiniranje vrstic iz dveh ali več tabel na podlagi povezanega stolpca med temi tabelami.
UNIJA z PRIDRUŽITEV
Operater SQL UNION lahko uporabljate z za pridobivanje podatkov iz dveh različnih tabel. Za primer bom preučil naslednjo tabelo skupaj s tabelo Zaposleni.
Tabela ProjectDetails
PID | Delovni dnevi | EmpID | CostforProject |
enajst | 12. | 4. | 20000 |
22. | 16. | 3. | 35000 |
33 | 30. | eno | 60000 |
44 | 25. | 3. | 45000 |
55 | enaindvajset | eno | 50.000 |
SELECT EmpID, Name, CostforProject FROM Employees LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID
Izhod:
EmpID | Ime | CostforProject |
eno | Emma | 60000 |
eno | Emma | 50.000 |
2. | Rahul | NIČ |
3. | Aayra | 35000 |
3. | Aayra | 45000 |
4. | Janez | 20000 |
5. | Derek | NIČ |
UNION ALL with JOINS
Napišite poizvedbo za pridobitev EmpID, Name in CostforProject iz tabele Employees in ProjectDetails, kjer so dovoljene podvojene vrednosti.
SELECT EmpID, Name, CostforProject FROM Employees LEFT JOIN PRODETILI PROJEKTOV NA Employees.EmpID = ProjectDetails.EmpID UNION ALL SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN
Izhod:
EmpID | Ime | CostforProject |
eno | Emma | 60000 |
eno | Emma | 50.000 |
2. | Rahul | NIČ |
3. | Aayra | 35000 |
3. | Aayra | 45000 |
4. | Janez | 20000 |
5. | Derek | NIČ |
4. | Janez | 20000 |
3. | Aayra | 35000 |
eno | Emma | 60000 |
3. | Aayra | 35000 |
eno | Emma | 50.000 |
S tem pridem do konca tega članka o SQL UNION. Upam, da ste uživali v branju tega članka o SQL UNION. Videli smo različne načine uporabe ukazov UNION in UNION ALL za pomoč pri pisanju poizvedb. Če želite izvedeti več o MySQL in spoznajte to odprtokodno relacijsko bazo podatkov, nato si oglejte našo ki prihaja z usposabljanjem pod vodstvom inštruktorjev v živo in izkušnjami iz resničnih projektov. Ta trening vam bo pomagal poglobljeno razumeti MySQL in vam pomagal doseči obvladovanje zadeve.
Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje v 'SQL UNION' in se vam oglasim.