Flet to tabeller i SQL

Flet To Tabeller I Sql



I SQL refererer tabelfusion til processen med at kombinere data fra to separate tabeller i en given database til en enkelt enhed baseret på en fælles kolonne eller kriterier. Ja, hvis det lyder som et bord, er det præcis, hvad det er.

En tabelsammenføjning eller en tabelfletning er en berømt funktion i relationelle databaser, og den er utrolig kraftfuld. Det giver os mulighed for at konsolidere informationen fra flere kilder for at skabe mere sammenhængende og meningsfuld dataindsigt. Det gør det også muligt for relationsdatabaserne at være meget skalerbare (ikke fleksible), da vi kan nedbryde dataene i mindre, håndterbare bidder, som vi kan referere til senere.

I denne øvelse vil vi dække det grundlæggende i tabelsammenføjninger eller tabelfletning. Lad os se på de virkelige tabelprøver for at styrke vores viden.







Eksempel tabel

Inden vi går ind i bordsammenføjningens verden, lad os opsætte de grundlæggende tabeller, som vi vil bruge til demonstrationsformål.



Overvej to tabeller, der indeholder oplysninger om medarbejdere og løn som vist i følgende eksempelforespørgsler:



CREATE TABLE medarbejdere (

medarbejder_id INT AUTO_INCREMENT PRIMÆR NØGLE,

fornavn VARCHAR( halvtreds ),

efternavn VARCHAR( halvtreds ),

afdeling VARCHAR( halvtreds )

);

Vi kan derefter indsætte eksempeldataene i medarbejderens tabel som vist i følgende forespørgsler:





INDSÆT I medarbejdere (fornavn, efternavn, afdeling) VÆRDIER

( 'Alice' , 'Smith' , 'Menneskelige ressourcer' ),

( 'Bob' , 'Johnson' , 'Markedsføring' ),

( 'Charlie' , 'Wilson' , 'Finansiere' ),

( 'David' , 'Brun' , 'Salg' ),

( 'Eva' , 'Davis' , 'Ingeniørarbejde' );

Lad os fortsætte og oprette en ny tabel til at gemme lønoplysningerne som følger:

OPRET TABEL lønninger (

løn_id INT AUTO_INCREMENT PRIMÆR NØGLE,

medarbejder_id INT,

løn DECIMAL( 10 , 2 ),

startdato DATE,

slutdato DATE,

UDENLANDSKE NØGLE (employee_id) REFERENCES medarbejdere(employee_id)

);

Tilføj indsæt eksempeldata i tabellen som følger:



INDSÆT I lønninger (medarbejder-id, løn, startdato, slutdato) VÆRDIER
( 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' );

Dette skulle give os to tabeller, der kan hjælpe os med at demonstrere konceptet med tabelsammenføjning/fletning i SQL.

SQL Table Merge/Table Joins

Lad os udforske de forskellige typer tabelfusioner, som vi kan lave. Vi vil dække de grundlæggende, efterhånden som vi udvikler os til mere avancerede.

INDRE JOIN

Den første og mest almindelige type table join i SQL er en INNER JOIN. En INNER JOIN giver os mulighed for at kombinere rækkerne fra to tabeller baseret på en specifik tilstand. Denne type returnerer så kun de rækker, hvor der er et match mellem tabellerne.

Lad os tage 'medarbejdere' og 'løn'-tabellerne, som vi lavede tidligere som eksempler. For at udføre en INNER JOIN i SQL bruger vi INNER JOIN-sætningen som følger:

VÆLG

e.employee_id,

e.first_name,

e.efternavn,

e. afdeling,

s.løn

FRA

medarbejdere e

INNER JOIN lønninger

e.employee_id = s.employee_id;

I den givne eksempelforespørgsel bruger vi en INNER JOIN til at flette 'medarbejdere' og 'løn'-tabellerne i kolonnen 'employee_id', som findes i begge tabeller. Det resulterende sæt indeholder kun de matchende rækker fra begge tabeller.

Et eksempel på output er som følger:

VENSTRE YDRE JOIN

Vi har også en LEFT OUTER JOIN, som kombinerer alle rækker fra venstre tabel og de matchende rækker fra højre tabel. Hvis der ikke er noget match i den højre tabel, bruger joinforbindelsen NULL-værdien.

VÆLG

e.employee_id,

e.first_name,

e.efternavn,

e. afdeling,

s.løn

FRA

medarbejdere e

LEFT JOIN løn s



e.employee_id = s.employee_id;

I dette eksempel udfører vi en LEFT OUTER JOIN for at flette 'medarbejdere' og 'løn'-tabellerne. Alle rækkerne fra tabellen 'medarbejdere' er inkluderet, og de matchende rækker fra tabellen 'lønninger' tilføjes. NULL-værdier er dog inkluderet i kolonnen 'løn' for ikke-matchende rækker.

SQL UNION

En anden metode til at forbinde tabellerne i SQL er at bruge UNION-operatoren. Denne operator giver os mulighed for at kombinere resultaterne af to eller flere udvalgte udsagn til et enkelt resultatsæt.

Kolonnerne i hver SELECT-sætning skal have samme datatype, for at foreningen kan anvendes.

Et eksempel er som følger:

VÆLG medarbejder_id , fornavn , efternavn , afdeling , NULL AS løn

FRA medarbejdere e

UNION

SELECT medarbejder_id , NULL AS fornavn , NULL AS efternavn , NULL AS afdeling , løn

FRA løn s ;

I dette tilfælde kombinerer en UNION tabellerne 'medarbejdere' og 'løn'. Vi opretter derefter NULL-kolonnerne i hver SELECT-sætning for at sikre, at begge tabeller har et tilsvarende antal kolonner.

UNIONS er teknisk almindelige, men de kan være nyttige, især når du skal flette tabellerne med forskellige strukturer.

Konklusion

I dette selvstudium undersøgte vi det grundlæggende i at sammenføje/fusionere to tabeller til et enkelt resultatsæt. Det er godt at huske på, at der er mange mere avancerede joinforbindelser, der diskuteres i dette indlæg.