Zlúčiť dve tabuľky v SQL

Zlucit Dve Tabulky V Sql



V SQL sa zlučovanie tabuliek vzťahuje na proces kombinovania údajov z dvoch samostatných tabuliek v danej databáze do jednej jednotky na základe spoločného stĺpca alebo kritérií. Áno, ak to znie ako stôl, presne to je.

Spojenie tabuliek alebo zlúčenie tabuliek je známa funkcia relačných databáz a je neuveriteľne výkonná. Umožňuje nám to konsolidovať informácie z viacerých zdrojov a vytvárať koherentnejšie a zmysluplnejšie prehľady údajov. Umožňuje tiež, aby boli relačné databázy vysoko škálovateľné (nie flexibilné), pretože údaje môžeme rozdeliť na menšie, spravovateľné časti, na ktoré sa môžeme neskôr odvolať.

V tomto návode sa budeme zaoberať základmi spájania tabuliek alebo spájania tabuliek. Pozrime sa na vzorky tabuliek z reálneho sveta, aby sme si upevnili svoje znalosti.







Vzorová tabuľka

Predtým, než sa pustíme do sveta spájania stolov, nastavme si základné tabuľky, ktoré použijeme na demonštračné účely.



Uvažujme o dvoch tabuľkách, ktoré obsahujú informácie o zamestnancoch a platoch, ako je uvedené v nasledujúcich príkladoch dotazov:



Zamestnanci CREATE TABLE (

zamestnanec_id INT AUTO_INCREMENT PRIMÁRNY KĽÚČ,

meno VARCHAR( päťdesiat ),

priezvisko VARCHAR( päťdesiat ),

oddelenie VARCHAR( päťdesiat )

);

Potom môžeme vložiť vzorové údaje do tabuľky zamestnanca, ako je uvedené v nasledujúcich dotazoch:





INSERT INTO zamestnancov (meno, priezvisko, oddelenie) HODNOTY

( 'Alice' , 'Smith' , 'Ľudské zdroje' ),

( 'Bob' , 'Johnson' , 'marketing' ),

( 'Charlie' , 'Wilson' , 'financie' ),

( 'David' , 'hnedá' , 'predaj' ),

( 'Eva' , 'Davis' , 'inžinierstvo' );

Pokračujme a vytvorte novú tabuľku na uloženie informácií o mzde takto:

VYTVORTE TABUĽKU platov (

pay_id INT AUTO_INCREMENT PRIMÁRNY KĽÚČ,

zamestnanec_id INT,

plat DECIMAL( 10 , 2 ),

dátum začiatku DATE,

end_date DATE,

CUDZÍ KĽÚČ (employee_id) REFERENCIE zamestnanci(employee_id)

);

Vložte vzorové údaje do tabuľky takto:



INSERT INTO platy (employee_id, plat, počiatočný_dátum, koncový_dátum) HODNOTY
( 1 , 60000,00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55 000,00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65 000,00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58 000,00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70 000,00 , '2023-01-01' , '2023-12-31' );

To by nám malo poskytnúť dve tabuľky, ktoré nám môžu pomôcť demonštrovať koncept spojenia/zlúčenia tabuliek v SQL.

Zlúčenie tabuliek SQL/spojenie tabuliek

Poďme preskúmať rôzne typy zlúčení tabuliek, ktoré môžeme urobiť. Základné sa budeme zaoberať tým, ako postúpime k pokročilejším.

VNÚTORNÉ SPOJENIE

Prvým a najbežnejším typom spojenia tabuliek v SQL je INNER JOIN. INNER JOIN nám umožňuje kombinovať riadky z dvoch tabuliek na základe špecifickej podmienky. Tento typ potom vráti iba riadky, kde je medzi tabuľkami zhoda.

Vezmime si ako príklad tabuľky „zamestnanci“ a „platy“, ktoré sme vytvorili predtým. Na vykonanie INNER JOIN v SQL používame klauzulu INNER JOIN takto:

VYBRAŤ

e.employee_id,

e.first_name,

e.priezvisko,

e.oddelenie,

s.plat

OD

zamestnanci e

Mzdy INNER JOIN s ON

e.employee_id = s.employee_id;

V uvedenom príklade dopytu používame INNER JOIN na zlúčenie tabuliek „zamestnanci“ a „platy“ v stĺpci „id_zamestnanca“, ktorý existuje v oboch tabuľkách. Výsledná množina obsahuje iba zodpovedajúce riadky z oboch tabuliek.

Príklad výstupu je nasledujúci:

ĽAVÉ VONKAJŠIE SPOJENIE

Máme tiež LEFT OUTER JOIN, ktorý kombinuje všetky riadky z ľavej tabuľky a zodpovedajúce riadky z pravej tabuľky. Ak sa v pravej tabuľke nenájde žiadna zhoda, spojenie použije hodnotu NULL.

VYBRAŤ

e.employee_id,

e.first_name,

e.priezvisko,

e.oddelenie,

s.plat

OD

zamestnanci e

LEFT JOIN platy s

ON

e.employee_id = s.employee_id;

V tomto príklade vykonáme LEFT OUTER JOIN na zlúčenie tabuliek „zamestnanci“ a „platy“. Zahrnú sa všetky riadky z tabuľky „zamestnanci“ a pridajú sa zodpovedajúce riadky z tabuľky „platy“. Hodnoty NULL sú však zahrnuté v stĺpci „plat“ pre nezhodné riadky.

SQL UNION

Ďalšou metódou spájania tabuliek v SQL je použitie operátora UNION. Tento operátor nám umožňuje spojiť výsledky dvoch alebo viacerých výberových príkazov do jednej množiny výsledkov.

Stĺpce v každom príkaze SELECT musia mať rovnaký typ údajov, aby bolo možné spojenie použiť.

Príklad je nasledujúci:

SELECT zamestnanec_id , meno , priezvisko , oddelenie , NULL AS plat

OD zamestnancov e

UNION

SELECT zamestnanec_id , NULL AS meno , NULL AS priezvisko , NULL AS oddelenie , plat

Z platov s ;

V tomto prípade Únia spája tabuľky „zamestnanci“ a „platy“. Potom vytvoríme stĺpce NULL v každom príkaze SELECT, aby sme zabezpečili, že obe tabuľky budú mať podobný počet stĺpcov.

UNIONS sú technicky bežné, ale môžu byť užitočné najmä vtedy, keď potrebujete zlúčiť tabuľky s rôznymi štruktúrami.

Záver

V tomto návode sme preskúmali základy spájania/zlučovania dvoch tabuliek do jednej sady výsledkov. Je dobré mať na pamäti, že v tomto príspevku sa diskutuje o oveľa pokročilejších pripojeniach.