Pri manipulácii s údajmi v databázach máme často tendenciu používať nastavené operátory v SQL , na získanie údajov podľa našich požiadaviek kombináciou dvoch alebo viacerých príkazov SELECT. V tomto článku o SQL UNION sa budem venovať operátoru UNION použitému na načítanie údajov v nasledujúcom poradí:
Začnime!
ako používať súbor v jave -
Čo je operátor SQL UNION?
Ako názov napovedá, tento operátor / klauzula sa používa na kombináciu výsledkov dvoch alebo viacerých príkazov SELECT. Tu musí mať každý príkaz SELECT použitý v príkaze UNION rovnaký počet stĺpcov v rovnakom poradí. Všetky stĺpce prítomné v príkazoch SELECT musia tiež obsahovať podobné dátové typy.
Klauzula UNION dáva ako výstup iba jedinečné hodnoty. Pre prípad, že chcete duplicitné hodnoty, musíte použiť klauzulu UNION ALL.
Ak v tomto článku o SQL UNION pokračujeme, pochopme syntax.
Syntax SQL UNION
Syntax UNION
VYBERTE Stĺpec1, Stĺpec2, Stĺpec3, ..., StĺpecN Z Tabuľky1 UNION VYBERTE Stĺpec1, Stĺpec2, Stĺpec3, ..., StĺpecN Z Tabuľky2
UNION ALL Syntax
VYBERTE Stĺpec1, Stĺpec2, Stĺpec3, ..., StĺpecN Z Tabuľky1 UNION VŠETKY VYBERTE Stĺpec1, Stĺpec2, Stĺpec3, ..., StĺpecN Z Tabuľky2
Ak v tomto článku pokračujeme ďalej, pochopme rozdiely medzi programami UNION a UNION ALL.
Rozdiely medzi SQL UNION a UNION ALL
ÚNIA | VŠETKO ÚNIA |
Kombinuje dve alebo viac množín výsledkov a nezachováva duplicitné hodnoty. | Kombinuje dve alebo viac množín výsledkov a zachováva duplicitné hodnoty. |
Syntax: ÚNIA | Syntax: VŠETKO ÚNIA |
Ďalej v tomto článku o SQL UNION pochopíme rôzne spôsoby použitia tohto operátora.
Príklady SQL UNION a UNION ALL
Pre vaše lepšie pochopenie zvážim nasledujúce tabuľky, ktoré vám ukážu rôzne príklady.
Tabuľka zamestnancov
EmpID | názov | EmpAge | Mesto | Poštové smerovacie číslo | Krajina |
jeden | Emma | 2. 3 | Berlín | 12109 | Nemecko |
2 | Rahul | 26 | Bombaj | 400015 | India |
3 | Aayra | 24 | New York | 10014 | POUŽITIE |
4 | Ján | 32 | Londýn | E1 7AE | UK |
5 | Derek | 29 | New York | 10012 | POUŽITIE |
Tabuľka projektov
ProjectID | názov | Pracovné dni | Mesto | Poštové smerovacie číslo | Krajina |
jeden | Projekt 1 | 10 | Berlín | 12109 | Nemecko |
2 | Projekt 2 | 7 | Bombaj | 400015 | India |
3 | Projekt 3 | dvadsať | Dillí | 110006 | India |
4 | Projekt 4 | pätnásť | Bombaj | 400015 | India |
5 | Projekt 5 | 28 | Berlín | 12109 | Nemecko |
Začnime príkladmi.
Príklady SQL UNION
Príklad operátora UNION
Napísať dopyt a vyhľadať odlišné mestá z tabuľky Zamestnanci a projekty.
VYBERTE Mesto ZO Zamestnancov ÚNIA VYBERTE Mesto Z PROJEKTOV OBJEDNAŤ Podľa mesta
Výkon:
Mesto |
Berlín |
Dillí |
Londýn |
Bombaj |
New York |
Príklad operátora UNION ALL
Napíšte dopyt na získanie miest z tabuľky Zamestnanci a projekty. Tu je potrebné zahrnúť duplicitné hodnoty.
VYBERTE Mesto OD zamestnancov UNION VŠETKO VYBERTE Mesto Z PROJEKTOV OBJEDNAŤ PODĽA mesta
Výkon:
Mesto |
Berlín |
Berlín |
Berlín |
Dillí |
Londýn |
Bombaj |
Bombaj |
Bombaj |
New York |
New York |
Ďalej v tomto článku pochopíme, ako používať klauzulu UNION s SQL Aliases.
UNION s aliasmi SQL
Používajú sa SQL aliasydať tabuľke alebo stĺpcu dočasný názov. Poďme teda napísať dopyt, aby sme uviedli zoznam všetkých jedinečných zamestnancov a projektov.
VYBERTE 'Zamestnanec' AS Typ, Meno, Mesto, Krajina OD Zamestnancov UNION VYBERTE 'Projekt', Meno, Mesto, Krajina Z PROJEKTOV
Výkon:
Typ | názov | Mesto | Krajina |
Zamestnanec | Emma | Berlín | Nemecko |
Zamestnanec | Rahul | Bombaj | India |
Zamestnanec | Aayra | New York | POUŽITIE |
Zamestnanec | Ján | Londýn | UK |
Zamestnanec | Derek | New York | POUŽITIE |
Projekt | Projekt 1 | Berlín | Nemecko |
Projekt | Projekt 2 | Bombaj | India |
Projekt | Projekt 3 | Dillí | India |
Projekt | Projekt 4 | Bombaj | India |
Projekt | Projekt 5 | Berlín | Nemecko |
ÚNIA s klauzulou WHERE
Napísať dopyt a vyhľadať odlišné indické mestá a ich poštové smerovacie čísla z tabuľky Zamestnanci aj projekty.
VYBERTE mesto, PSČ, krajinu FROM zamestnancov KDE Krajina = 'India' ÚNIA VYBERTE mesto, PSČ, krajinu FROM projektov KDE Krajina = 'India' OBJEDNAŤ PODĽA mesta
Výkon:
Mesto | Poštové smerovacie číslo | Krajina |
Dillí | 110006 | India |
Bombaj | 400015 | India |
UNION ALL s klauzulou WHERE
Napíšte dopyt a načítajte indické mestá a ich poštové smerovacie čísla z tabuľky Zamestnanci aj projekty, kde sú povolené duplicitné hodnoty
čo je tostring v jave
VYBERTE mesto, PSČ, krajinu FROM zamestnancov KDE Krajina = 'India' ÚNIA VŠETKY VYBERTE mesto, PSČ, krajinu FROM projektov KDE Krajina = 'India' OBJEDNAŤ PODĽA mesta
Výkon:
Mesto | Poštové smerovacie číslo | Krajina |
Dillí | 110006 | India |
Bombaj | 400015 | India |
Bombaj | 400015 | India |
Bombaj | 400015 | India |
Ďalej v tomto článku pochopíme, ako používať klauzuly UNION a UNION ALL spolu s JOINS.PRIPOJENIA v SQL sú ktoré sa používajú na kombináciu riadkov z dvoch alebo viacerých tabuliek na základe príbuzného stĺpca medzi týmito tabuľkami.
ÚNIA S PRIPOJENIAMI
Operátor SQL UNION je možné použiť s na získanie údajov z dvoch rôznych tabuliek. Pre príklad zvážim nasledujúcu tabuľku spolu s tabuľkou Zamestnanci.
Tabuľka ProjectDetails
PID | Pracovné dni | EmpID | CostforProject |
jedenásť | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | jeden | 60000 |
44 | 25 | 3 | 45000 |
55 | dvadsaťjeden | jeden | 50 000 |
VYBERTE EmpID, meno, CostforProject OD zamestnancov LEVÉ PRIPOJTE SA ProjectDetails ON na zamestnancov.EmpID = ProjectDetails.EmpID UNION VYBERTE EmpID, meno, CostforProject od zamestnancov PRAVÉ PRIPOJTE SA NA ProjectDetails ON na zamestnancov.EmpID = ProjectDetails.EmpID
Výkon:
EmpID | názov | CostforProject |
jeden | Emma | 60000 |
jeden | Emma | 50 000 |
2 | Rahul | NULOVÝ |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Ján | 20000 |
5 | Derek | NULOVÝ |
UNION ALL with JOINS
Napíšte dotaz na získanie EmpID, mena a CostforProject z tabuľky Zamestnanci a ProjectDetails, kde sú povolené duplicitné hodnoty.
VYBERTE EmpID, meno, CostforProject OD ZAMESTNANCOV VĽAVO PRIPOJTE sa ProjectDetails ON na zamestnancov.EmpID = ProjectDetails.EmpID UNION VŠETKO VYBERTE EmpID, meno, CostforProject od zamestnancov SPRÁVNE SA PRIPOJTE ProjectDetails NA na zamestnancov.EmpID = ProjectDetails.EmpID
Výkon:
EmpID | názov | CostforProject |
jeden | Emma | 60000 |
jeden | Emma | 50 000 |
2 | Rahul | NULOVÝ |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Ján | 20000 |
5 | Derek | NULOVÝ |
4 | Ján | 20000 |
3 | Aayra | 35000 |
jeden | Emma | 60000 |
3 | Aayra | 35000 |
jeden | Emma | 50 000 |
Týmto sa dostávam na koniec tohto článku o SQL UNION. Dúfam, že sa vám páčilo čítanie tohto článku o SQL UNION. Videli sme rôzne spôsoby použitia príkazov UNION a UNION ALL, ktoré vám pomôžu pri písaní dotazov. Ak sa chcete dozvedieť viac o MySQL a spoznajte túto otvorenú relačnú databázu, potom si pozrite našu ktorá prináša živé školenie vedené inštruktorom a skúsenosti s projektmi v reálnom živote. Toto školenie vám pomôže pochopiť MySQL do hĺbky a pomôže vám dosiahnuť osvojenie si témy.
Máte na nás otázku? Prosím, uveďte to v sekcii komentárov „SQL UNION“ a ozvem sa vám.