Spoji dvije tablice u SQL-u

Spoji Dvije Tablice U Sql U



U SQL-u, spajanje tablica odnosi se na proces kombiniranja podataka iz dvije odvojene tablice u određenoj bazi podataka u jednu jedinicu na temelju zajedničkog stupca ili kriterija. Da, ako zvuči kao stol, to je upravo to.

Spajanje tablica ili spajanje tablica poznata je značajka relacijskih baza podataka i nevjerojatno je moćna. Omogućuje nam konsolidaciju informacija iz više izvora kako bismo stvorili koherentnije i smislenije uvide u podatke. Također omogućuje relacijskim bazama podataka da budu visoko skalabilne (ne fleksibilne) jer podatke možemo rastaviti na manje upravljive dijelove na koje se kasnije možemo pozivati.

U ovom vodiču pokrit ćemo osnove spajanja tablica ili spajanja tablica. Pogledajmo uzorke tablica iz stvarnog svijeta kako bismo učvrstili svoje znanje.







Tablica uzorka

Prije nego krenemo u svijet spajanja tablica, postavimo osnovne tablice koje ćemo koristiti u demonstracijske svrhe.



Razmotrite dvije tablice koje sadrže podatke o zaposlenicima i plaćama kao što je prikazano u sljedećim primjerima upita:



CREATE TABLE zaposlenici (

employee_id INT AUTO_INCREMENT PRIMARNI KLJUČ,

ime VARCHAR( pedeset ),

prezime VARCHAR( pedeset ),

odjel VARCHAR( pedeset )

);

Zatim možemo umetnuti uzorke podataka u tablicu zaposlenika kao što je prikazano u sljedećim upitima:





INSERT INTO zaposlenici (ime, prezime, odjel) VRIJEDNOSTI

( 'Alice' , 'Smith' , 'Ljudski resursi' ),

( 'Bob' , 'Johnson' , 'Marketing' ),

( 'Charlie' , 'Wilson' , 'Financije' ),

( 'David' , 'smeđa' , 'Prodajni' ),

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

Nastavimo i stvorimo novu tablicu za pohranu podataka o plaći na sljedeći način:

CREATE TABLE plaće (

salary_id INT AUTO_INCREMENT PRIMARY KEY,

Emploee_id INT,

DECIMALNA plaća( 10 , 2 ),

početni_datum DATE,

završni_datum DATE,

FOREIGN KEY (employee_id) REFERENCE zaposlenici (employee_id)

);

Dodajte podatke uzorka umetanja u tablicu na sljedeći način:



INSERT INTO plaće (employee_id, salary, start_date, end_date) VRIJEDNOSTI
( 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 trebalo pružiti dvije tablice koje nam mogu pomoći da demonstriramo koncept spajanja/spajanja tablica u SQL-u.

SQL spajanje tablica/spajanje tablica

Istražimo razne vrste spajanja tablica koje možemo učiniti. Pokrit ćemo temeljne kako budemo napredovali do naprednijih.

UNUTARNJI SPOJ

Prva i najčešća vrsta spajanja tablica u SQL-u je INNER JOIN. INNER JOIN nam omogućuje kombiniranje redaka iz dvije tablice na temelju određenog uvjeta. Ovaj tip zatim vraća samo retke u kojima postoji podudaranje između tablica.

Uzmimo tablice 'zaposlenici' i 'plaće' koje smo ranije izradili kao primjere. Da bismo izvršili INNER JOIN u SQL-u, koristimo klauzulu INNER JOIN na sljedeći način:

IZABERI

e.employee_id,

e.ime,

e.prezime,

e.odjel,

s.plaća

IZ

zaposlenici e

INNER JOIN plaće s NA

e.imployee_id = s.employee_id;

U navedenom primjeru upita koristimo INNER JOIN za spajanje tablica 'zaposlenici' i 'plaće' u stupcu 'employee_id' koji postoji u obje tablice. Rezultirajući skup sadrži samo podudarne retke iz obje tablice.

Primjer izlaza je sljedeći:

LIJEVI VANJSKI SPOJ

Imamo i LEFT OUTER JOIN koji kombinira sve retke iz lijeve tablice i odgovarajuće retke iz desne tablice. Ako nema podudaranja u desnoj tablici, spajanje koristi vrijednost NULL.

IZABERI

e.employee_id,

e.ime,

e.prezime,

e.odjel,

s.plaća

IZ

zaposlenici e

LIJEVO PRIDRUŽI plaće s

NA

e.imployee_id = s.employee_id;

U ovom primjeru izvodimo LEFT OUTER JOIN kako bismo spojili tablice 'zaposlenici' i 'plaće'. Svi retci iz tablice 'zaposlenici' su uključeni i dodani su odgovarajući retci iz tablice 'plaće'. Međutim, vrijednosti NULL uključene su u stupac 'plaća' za retke koji se ne podudaraju.

SQL UNIJA

Drugi način spajanja tablica u SQL-u je korištenje operatora UNION. Ovaj nam operator omogućuje kombiniranje rezultata dviju ili više naredbi odabira u jedan skup rezultata.

Stupci u svakoj SELECT izjavi moraju imati isti tip podataka da bi unija bila primjenjiva.

Primjer je sljedeći:

SELECT id_zaposlenika, ime, prezime, odjel, NULL AS plaća

OD zaposlenika e

UNIJA

SELECT id_zaposlenika, NULL AS ime, NULL AS prezime, NULL AS odjel, plaća

OD plaće s ;

U ovom slučaju UNION spaja tablice 'zaposlenici' i 'plaće'. Zatim stvaramo stupce NULL u svakoj izjavi SELECT kako bismo osigurali da obje tablice imaju sličan broj stupaca.

UNIONI su tehnički uobičajeni, ali mogu biti korisni posebno kada trebate spojiti tablice s različitim strukturama.

Zaključak

U ovom vodiču istražili smo osnove spajanja/spajanja dviju tablica u jedan skup rezultata. Dobro je imati na umu da postoji mnogo naprednijih spojeva o kojima se govori u ovom postu.