Voeg twee tabellen samen in SQL

Voeg Twee Tabellen Samen In Sql



In SQL verwijst het samenvoegen van tabellen naar het proces waarbij de gegevens uit twee afzonderlijke tabellen in een bepaalde database worden gecombineerd tot één eenheid op basis van een gemeenschappelijke kolom of criteria. Ja, als het klinkt als een tafel, dan is dat precies wat het is.

Het samenvoegen van tabellen of het samenvoegen van tabellen is een bekend kenmerk van relationele databases en is ongelooflijk krachtig. Het stelt ons in staat om de informatie uit meerdere bronnen te consolideren om meer samenhangende en betekenisvolle data-inzichten te creëren. Het zorgt er ook voor dat de relationele databases zeer schaalbaar (niet flexibel) zijn, omdat we de gegevens kunnen opsplitsen in kleinere, beheersbare brokken waar we later naar kunnen verwijzen.

In deze zelfstudie bespreken we de basisprincipes van tabeljoins of tabelsamenvoegingen. Laten we eens kijken naar de tafelvoorbeelden uit de echte wereld om onze kennis te versterken.







Voorbeeldtabel

Voordat we ingaan op de wereld van table joins, gaan we eerst de basistabellen opzetten die we voor demonstratiedoeleinden gaan gebruiken.



Beschouw twee tabellen die de werknemers- en salarisgegevens bevatten, zoals weergegeven in de volgende voorbeeldquery's:



MAAK TAFEL medewerkers (

werknemer_id INT AUTO_INCREMENT PRIMAIRE SLEUTEL,

voornaam VARCHAR( vijftig ),

achternaam VARCHAR( vijftig ),

afdeling VARCHAR( vijftig )

);

Vervolgens kunnen we de voorbeeldgegevens in de tabel van de werknemer invoegen, zoals weergegeven in de volgende vragen:





INSERT INTO werknemers (voornaam, achternaam, afdeling) WAARDEN

( 'Alice' , 'Smid' , 'Personeelszaken' ),

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

( 'Charlie' , 'Wilson' , 'Financiën' ),

( 'David' , 'Bruin' , 'Verkoop' ),

( 'Eva' , 'Davis' , 'Engineering' );

Laten we verder gaan en een nieuwe tabel maken om de salarisinformatie als volgt op te slaan:

Salarissen van CREATE TABLE (

salaris_id INT AUTO_INCREMENT PRIMAIRE SLEUTEL,

medewerker_id INT,

salaris DECIMAAL( 10 , 2 ),

startdatum DATUM,

einddatum DATUM,

BUITENLANDSE SLEUTEL (werknemer_id) REFERENTIES medewerkers(werknemer_id)

);

Voeg de invoegvoorbeeldgegevens als volgt toe aan de tabel:



INSERT INTO salarissen (werknemer-ID, salaris, startdatum, einddatum) WAARDEN
( 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' );

Dit zou ons twee tabellen moeten opleveren die ons kunnen helpen het concept van tabeljoins/merge in SQL te demonstreren.

SQL-tabel samenvoegen/tabel joins

Laten we eens kijken naar de verschillende typen tabelsamenvoegingen die we kunnen uitvoeren. We zullen de fundamentele aspecten behandelen naarmate we verdergaan naar meer geavanceerde.

BINNENSTE VERBINDING

Het eerste en meest voorkomende type tabeljoin in SQL is een INNER JOIN. Met een INNER JOIN kunnen we de rijen uit twee tabellen combineren op basis van een specifieke voorwaarde. Dit type retourneert dan alleen de rijen waarin er een overeenkomst is tussen de tabellen.

Laten we de tabellen ‘werknemers’ en ‘salarissen’ die we eerder hebben gemaakt als voorbeeld nemen. Om een ​​INNER JOIN in SQL uit te voeren, gebruiken we de INNER JOIN-clausule als volgt:

SELECTEER

e.werknemer_id,

e.voornaam,

e.achternaam,

e.afdeling,

s.salaris

VAN

medewerkers e

INNER JOIN salarissen s OP

e.werknemer_id = s.werknemer_id;

In de gegeven voorbeeldquery gebruiken we een INNER JOIN om de tabellen 'werknemers' en 'salarissen' samen te voegen in de kolom 'werknemer_id' die in beide tabellen voorkomt. De resulterende set bevat alleen de overeenkomende rijen uit beide tabellen.

Een voorbeelduitvoer is als volgt:

LINKS BUITENVERBINDING

We hebben ook een LEFT OUTER JOIN die alle rijen uit de linkertabel en de overeenkomende rijen uit de rechtertabel combineert. Als er geen overeenkomst in de rechtertabel is, gebruikt de join de NULL-waarde.

SELECTEER

e.werknemer_id,

e.voornaam,

e.achternaam,

e.afdeling,

s.salaris

VAN

medewerkers e

LEFT JOIN salarissen s

OP

e.werknemer_id = s.werknemer_id;

In dit voorbeeld voeren we een LEFT OUTER JOIN uit om de tabellen “werknemers” en “salarissen” samen te voegen. Alle rijen uit de tabel “werknemers” zijn opgenomen en de overeenkomende rijen uit de tabel “salarissen” zijn toegevoegd. Er worden echter NULL-waarden opgenomen in de kolom 'salaris' voor niet-overeenkomende rijen.

SQL-UNIE

Een andere methode om de tabellen in SQL samen te voegen is het gebruik van de UNION-operator. Met deze operator kunnen we de resultaten van twee of meer geselecteerde uitspraken combineren in één resultatenset.

De kolommen in elke SELECT-instructie moeten hetzelfde gegevenstype hebben om de unie van toepassing te laten zijn.

Een voorbeeld is als volgt:

SELECT werknemer_id, voornaam, achternaam, afdeling, NULL AS salaris

VAN medewerkers e

UNIE

SELECT werknemer_id , NULL AS voornaam , NULL AS achternaam , NULL AS afdeling , salaris

VAN salarissen s;

In dit geval voegt een UNION de tabellen “werknemers” en “salarissen” samen. Vervolgens maken we de NULL-kolommen in elke SELECT-instructie om ervoor te zorgen dat beide tabellen een vergelijkbaar aantal kolommen hebben.

UNIONS zijn technisch gebruikelijk, maar ze kunnen vooral handig zijn als u de tabellen met verschillende structuren moet samenvoegen.

Conclusie

In deze zelfstudie hebben we de basisprincipes onderzocht van het samenvoegen/samenvoegen van twee tabellen tot één resultatenset. Het is goed om in gedachten te houden dat er veel meer geavanceerde joins zijn die in dit bericht worden besproken.