Îmbinați două tabele în SQL

Imbinati Doua Tabele In Sql



În SQL, fuziunea tabelelor se referă la procesul de combinare a datelor din două tabele separate dintr-o bază de date dată într-o singură unitate bazată pe o coloană sau criterii comune. Da, dacă sună ca o masă, exact asta este.

O alăturare a unui tabel sau o îmbinare a unui tabel este o caracteristică renumită a bazelor de date relaționale și este incredibil de puternică. Ne permite să consolidăm informațiile din mai multe surse pentru a crea informații mai coerente și semnificative asupra datelor. De asemenea, permite bazelor de date relaționale să fie foarte scalabile (nu flexibile), deoarece putem împărți datele în bucăți mai mici, gestionabile, la care putem face referire mai târziu.

În acest tutorial, vom acoperi elementele fundamentale ale îmbinărilor sau îmbinării tabelelor. Să ne uităm la mostrele de tabel din lumea reală pentru a ne consolida cunoștințele.







Tabel de probă

Înainte de a intra în lumea îmbinărilor cu mese, să setăm tabelele de bază pe care le vom folosi în scopuri demonstrative.



Luați în considerare două tabele care conțin informații despre angajați și salariu, așa cum se arată în următoarele exemple de interogări:



CREATE TABLE angajații (

employee_id INT AUTO_INCREMENT PRIMARY KEY,

prenume VARCHAR( cincizeci ),

prenume VARCHAR( cincizeci ),

departamentul VARCHAR( cincizeci )

);

Apoi putem insera datele eșantionului în tabelul angajatului, așa cum se arată în următoarele interogări:





INSERT INTO angajați (prenume, prenume, departament) VALORI

( 'Alice' , „Smith” , 'Resurse umane' ),

( „Bob” , „Johnson” , 'Marketing' ),

( „Charlie” , „Wilson” , 'Finanţa' ),

( 'David' , 'Maro' , 'Vânzări' ),

( „Eva” , „Davis” , 'Inginerie' );

Să continuăm și să creăm un nou tabel pentru a stoca informațiile despre salariu, după cum urmează:

CREATE TABLE salarii (

salary_id INT AUTO_INCREMENT PRIMARY KEY,

employee_id INT,

salariu DECIMAL( 10 , 2 ),

start_date DATE,

end_date DATE,

CHEIE STRĂINĂ (employee_id) REFERINȚE angajați(employee_id)

);

Adăugați datele eșantionului de inserare în tabel, după cum urmează:



INSERT INTO salarii (employee_id, salariu, start_date, end_date) VALUES
( 1 , 60000,00 , „2023-01-01” , '2023-12-31' ),
( 2 , 55000,00 , „2023-01-01” , '2023-12-31' ),
( 3 , 65000,00 , „2023-01-01” , '2023-12-31' ),
( 4 , 58000,00 , „2023-01-01” , '2023-12-31' ),
( 5 , 70000,00 , „2023-01-01” , '2023-12-31' );

Acest lucru ar trebui să ne furnizeze două tabele care ne pot ajuta să demonstrăm conceptul de îmbinare/imbinare a tabelelor în SQL.

Fuzionarea tabelului SQL/Asocierile de tabel

Să explorăm diferitele tipuri de îmbinări de tabele pe care le putem face. Le vom acoperi pe cele fundamentale pe măsură ce trecem la altele mai avansate.

INNER JOIN

Primul și cel mai comun tip de îmbinare de tabel în SQL este un INNER JOIN. Un INNER JOIN ne permite să combinăm rândurile din două tabele pe baza unei anumite condiții. Acest tip returnează apoi numai rândurile în care există o potrivire între tabele.

Să luăm ca exemple tabelele „angajați” și „salarii” pe care le-am creat mai devreme. Pentru a efectua o INNER JOIN în SQL, folosim clauza INNER JOIN după cum urmează:

SELECTAȚI

e.employee_id,

e.prenume,

e.nume,

e.departament,

s.salariu

DIN

angajați e

INNER JOIN salarii s PE

e.employee_id = s.employee_id;

În exemplul de interogare dat, folosim un INNER JOIN pentru a îmbina tabelele „angajați” și „salarii” din coloana „employee_id” care există în ambele tabele. Setul rezultat conține doar rândurile care se potrivesc din ambele tabele.

Un exemplu de ieșire este după cum urmează:

ÎNTREPRINDERE EXTERIOR STÂNGA

Avem, de asemenea, un LEFT OUTER JOIN care combină toate rândurile din tabelul din stânga și rândurile care se potrivesc din tabelul din dreapta. Dacă nu există nicio potrivire în tabelul din dreapta, îmbinarea folosește valoarea NULL.

SELECTAȚI

e.employee_id,

e.prenume,

e.nume,

e.departament,

s.salariu

DIN

angajați e

LEFT JOIN salarii s

PE

e.employee_id = s.employee_id;

În acest exemplu, efectuăm o LEFT OUTER JOIN pentru a îmbina tabelele „angajați” și „salarii”. Sunt incluse toate rândurile din tabelul „angajați” și se adaugă rândurile potrivite din tabelul „salarii”. Cu toate acestea, valorile NULL sunt incluse în coloana „salariu” pentru rândurile care nu se potrivesc.

SQL UNION

O altă metodă de alăturare a tabelelor în SQL este utilizarea operatorului UNION. Acest operator ne permite să combinăm rezultatele a două sau mai multe instrucțiuni select într-un singur set de rezultate.

Coloanele din fiecare instrucțiune SELECT trebuie să aibă același tip de date pentru ca uniunea să fie aplicabilă.

Un exemplu este următorul:

SELECTAȚI ID-ul angajatului , Prenume , Nume , Departament , Salariul NULL AS

DIN angajați e

UNIUNE

SELECT ID_angajat , NULL AS prenume , NULL AS prenume , NULL AS departament , salariu

DIN salarii s ;

În acest caz, un UNIUNII combină tabelele „angajați” și „salarii”. Apoi creăm coloanele NULL în fiecare instrucțiune SELECT pentru a ne asigura că ambele tabele au un număr similar de coloane.

UNIUNILE sunt comune din punct de vedere tehnic, dar pot fi utile mai ales atunci când trebuie să îmbinați tabelele cu structuri diferite.

Concluzie

În acest tutorial, am explorat elementele fundamentale ale îmbinării/unării a două tabele într-un singur set de rezultate. Este bine să rețineți că există multe mai multe alinări avansate despre care se discută în această postare.