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:
| Tabel | Beschrijving | Voorbeeldkolommen |
|---|---|---|
klanten | Klantinformatie | id, naam, email |
bestellingen | Orders die klanten hebben geplaatst | id, klant_id, datum, totaalbedrag |
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.
| Relatie | Beschrijving | Voorbeeld |
|---|---|---|
| One-to-Many (1:N) | Eén record hoort bij meerdere in de andere | Eén klant → meerdere bestellingen |
| Many-to-Many (N:M) | Records aan beide kanten kunnen meerdere koppelingen hebben | Producten ↔ Bestellingen (via een tussentabel) |
| One-to-One (1:1) | Eén record hoort precies bij één ander | Klant ↔ 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 JOIN, LEFT JOIN en RIGHT JOIN
