Home » DML » Leg relaties in SQL tussen tabellen

Leg relaties in SQL tussen tabellen

Het is in SQL mogelijk om relaties tussen een of meerdere tabellen te leggen. Door deze relaties kunnen gegevens aan elkaar worden geknoopt. Het kunnen leggen van relaties is een kenmerk van een relationele database.

Zo kun je een tabel hebben met klanten en een tabel met orders. Je kunt tussen beide tabellen een relatie leggen. Een order koppel je bijvoorbeeld aan een klant door middel van een klant id.

Relaties

Het is dus mogelijk om relaties te leggen. In sommige database kan dit op een harde manier gelegd worden. Dit houdt in dat er een constraint is dat het vastlegt. Relaties kunnen ook op een ‘zachte’ manier worden gemaakt. Bijvoorbeeld de tabel Klant heeft id als primaire sleutel. In de tabel Order is een vreemde sleutel klantid. De relaties wordt in principe code-technisch onderhouden.

advertentie

Waarom relaties belangrijk zijn

In plaats van alle gegevens in één grote tabel te stoppen (met veel herhaling), splits je de data op in logische onderdelen:

TabelBeschrijvingVoorbeeldkolommen
klantenKlantinformatieid, naam, email
bestellingenOrders die klanten hebben geplaatstid, klant_id, datum, totaalbedrag
De kolom klant_id in bestellingen verwijst naar id in klanten — dat is een foreign key-relatie.

Soorten relaties

Er zijn verschillende soorten relaties in SQL:

  • 1 op 1: Elk record heeft een relatie met exact 1 ander record.
  • 1 op meerdere: Elk record heeft een relatie met exact 1 ander record.
  • 1 op enige andere: Elk record heeft een relatie met eventueel enige andere records.
RelatieBeschrijvingVoorbeeld
One-to-Many (1:N)Eén record hoort bij meerdere in de andereEén klant → meerdere bestellingen
Many-to-Many (N:M)Records aan beide kanten kunnen meerdere koppelingen hebbenProducten ↔ Bestellingen (via een tussentabel)
One-to-One (1:1)Eén record hoort precies bij één anderKlant ↔ Klantprofiel

Het gebruik van JOINS

Als er een relatie aanwezig is tussen twee tabellen dan kunnen we door middel van een JOIN gegevens ophalen uit deze tabellen. Afhankelijk van het type join, worden gegevens op een bepaalde manier opgehaald. We kunnen onder andere de volgende soorten joins gebruiken INNER JOINLEFT JOIN en RIGHT JOIN