Spojite dve tabeli v SQL

Spojite Dve Tabeli V Sql



V SQL se združevanje tabel nanaša na postopek združevanja podatkov iz dveh ločenih tabel v dani zbirki podatkov v eno enoto na podlagi skupnega stolpca ali kriterijev. Da, če se sliši kot miza, je točno to.

Združevanje tabel ali združevanje tabel je znana funkcija relacijskih baz podatkov in je neverjetno zmogljiva. Omogoča nam, da združimo informacije iz več virov, da ustvarimo bolj koherentne in smiselne vpoglede v podatke. Omogoča tudi, da so relacijske baze podatkov zelo razširljive (ne prilagodljive), saj lahko podatke razdelimo na manjše, obvladljive dele, na katere se lahko pozneje sklicujemo.

V tej vadnici bomo obravnavali osnove združevanja tabel ali spajanja tabel. Oglejmo si vzorce tabel iz resničnega sveta, da utrdimo naše znanje.







Vzorčna tabela

Preden gremo v svet združevanja tabel, nastavimo osnovne tabele, ki jih bomo uporabili v predstavitvene namene.



Razmislite o dveh tabelah, ki vsebujeta informacije o zaposlenih in plačah, kot je prikazano v naslednjih primerih poizvedb:



CREATE TABLE zaposleni (

Emploee_id INT AUTO_INCREMENT PRIMARNI KLJUČ,

ime VARCHAR( petdeset ),

priimek VARCHAR( petdeset ),

oddelek VARCHAR( petdeset )

);

Nato lahko vzorčne podatke vstavimo v tabelo zaposlenega, kot je prikazano v naslednjih poizvedbah:





INSERT INTO zaposleni (ime, priimek, oddelek) VREDNOSTI

( 'Alice' , 'Smith' , 'Človeški viri' ),

( 'Bob' , 'Johnson' , 'trženje' ),

( 'Charlie' , 'Wilson' , 'Finance' ),

( 'David' , 'Rjav' , 'Prodaja' ),

( 'Eva' , 'Davis' , 'Inženiring' );

Nadaljujmo in ustvarimo novo tabelo za shranjevanje podatkov o plačah, kot sledi:

CREATE TABLE plače (

salary_id INT AUTO_INCREMENT PRIMARNI KLJUČ,

Emploee_id INT,

plača DECIMALNO( 10 , 2 ),

začetni_datum DATE,

končni_datum DATE,

TUJI KLJUČ (employee_id) REFERENCE zaposleni (employee_id)

);

V tabelo dodajte vzorčne podatke na naslednji način:



INSERT INTO plače (employee_id, salary, start_date, end_date) VREDNOSTI
( 1 , 60000,00 , '2023-01-01' , '31.12.2023' ),
( 2 , 55000,00 , '2023-01-01' , '31.12.2023' ),
( 3 , 65000,00 , '2023-01-01' , '31.12.2023' ),
( 4 , 58000,00 , '2023-01-01' , '31.12.2023' ),
( 5 , 70000,00 , '2023-01-01' , '31.12.2023' );

To bi nam moralo zagotoviti dve tabeli, ki nam lahko pomagata prikazati koncept združevanja/združevanja tabel v SQL.

Spajanje/združevanje tabel SQL

Raziščimo različne vrste združevanja tabel, ki jih lahko izvedemo. Pokrivali bomo temeljne, ko bomo napredovali do naprednejših.

NOTRANJI SPOJ

Prva in najpogostejša vrsta združevanja tabel v SQL je INNER JOIN. INNER JOIN nam omogoča združevanje vrstic iz dveh tabel na podlagi določenega pogoja. Ta vrsta nato vrne samo vrstice, v katerih je ujemanje med tabelami.

Vzemimo za primer tabele »zaposleni« in »plače«, ki smo ju ustvarili prej. Za izvedbo INNER JOIN v SQL uporabimo klavzulo INNER JOIN na naslednji način:

IZBERI

e.imployee_id,

e.ime,

e.priimek,

e.oddelek,

s.plača

OD

zaposleni e

INNER JOIN plače s VKLOP

e.employee_id = s.employee_id;

V danem primeru poizvedbe uporabljamo INNER JOIN za združitev tabel »zaposleni« in »plače« v stolpcu »employee_id«, ki obstaja v obeh tabelah. Nastali niz vsebuje samo ujemajoče se vrstice iz obeh tabel.

Primer izhoda je naslednji:

LEVI ZUNANJI SPOJ

Imamo tudi LEVI ZUNANJI SPOJ, ki združuje vse vrstice iz leve tabele in ustrezne vrstice iz desne tabele. Če v desni tabeli ni ujemanja, združevanje uporabi vrednost NULL.

IZBERI

e.imployee_id,

e.ime,

e.priimek,

e.oddelek,

s.plača

OD

zaposleni e

LEVO JOIN plače s

VKLOP

e.employee_id = s.employee_id;

V tem primeru izvedemo LEFT OUTER JOIN, da združimo tabele »zaposleni« in »plače«. Vključene so vse vrstice iz tabele »zaposleni« in dodane ustrezne vrstice iz tabele »plače«. Vendar so vrednosti NULL vključene v stolpec »plača« za vrstice, ki se ne ujemajo.

SQL UNION

Drug način združevanja tabel v SQL je uporaba operatorja UNION. Ta operator nam omogoča združevanje rezultatov dveh ali več izbirnih stavkov v en sam niz rezultatov.

Stolpci v vsakem stavku SELECT morajo imeti isti tip podatkov, da je unija uporabna.

Primer je naslednji:

IZBERI id_zaposlenega, ime, priimek, oddelek, NULL AS plača

OD zaposlenih e

UNION

IZBERI id_zaposlenega, NULL AS ime, NULL AS priimek, NULL AS oddelek, plača

OD plač s ;

V tem primeru UNION združi tabeli »zaposleni« in »plače«. Nato ustvarimo stolpce NULL v vsakem stavku SELECT, da zagotovimo, da imata obe tabeli podobno število stolpcev.

UNIONI so tehnično običajni, vendar so lahko uporabni, zlasti ko morate združiti tabele z različnimi strukturami.

Zaključek

V tej vadnici smo raziskali osnove združevanja/združevanja dveh tabel v en niz rezultatov. Dobro je imeti v mislih, da je v tej objavi veliko bolj naprednih združitev.