sql relationships visual one to one one to many many to many

Introductie in SQL relationships

Een relationele database bestaat meestal uit meerdere tabellen die onderling relaties hebben.

Tabellen bevatten primary- en foreign SQL keys om deze relaties te specificeren. Als je SQL leert is het belangrijk dat je dit onderwerp goed begrijpt.

  • Primary keys: de kolom(men) die de unieke objecten in een tabel identificeert.
  • Foreign keys: de kolom die linkt naar een primary key in een andere tabel.

Er zijn vervolgens verschillende soorten SQL relaties (SQL relationships):

  1. One-to-one
  2. One-to-many
  3. Many-to-many

In dit artikel leren we wat deze SQL relaties en hun onderlinge verschillen zijn.

We werken in deze tutorial met de IMDb database die we in deze blog toelichten en waar je tevens de dataset kunt downloaden om mee te doen. Als je mee wilt doen met deze tutorial dan dien je tevens SQL en PgAdmin te installeren als je nog geen werkende SQL set-up op je eigen computer hebt.

Klik op één van onderstaande items om direct naar de uitleg en voorbeelden te navigeren:


1. SQL relationships: one-to-one relatie

Bij een one-to-one relatie is 1 record uit de ene tabel gelinkt aan 0 of 1 record uit een andere tabel.

We leggen dit uit aan de hand van het volgende voorbeeld:

sql one to one relationship

Hierin zien we:

  • Tabel students bevat een voornaam en achternaam van studenten.
    • Iedere rij bevat gegevens van een unieke student.
    • Primary key is kolom student_id.
  • Tabel student_details bevat details van een student: e-mail en geboortedatum.
    • Iedere rij bevat details van een unieke student.
    • Primary key is kolom student_id.

Hierbij is 1 record uit tabel students gelinkt aan 0 of 1 record uit tabel student_details.

Dit op overeenkomstige kolommen student_id.

De one-to-one relatie komt bijvoorbeeld voor als er veel kolommen nodig zijn om alle details van een object te kunnen verwerken.
Voor beter overzicht wordt de data dan over meerdere tabellen verdeeld.


Leren werken met SQL voor data analayse? Na onze 2-daagse SQL cursus kun je volledig zelfstandig werken met SQL.

2. SQL relationships: one-to-many relatie

Bij een one-to-many SQL relationship is 1 record uit de ene tabel gelinkt aan 0 of meerdere records uit een andere tabel.

We bekijken het volgende voorbeeld:

sql one to many relationship

Hierin zien we het volgende:

  • Tabel students bevat een voornaam en achternaam van studenten.
    • Iedere rij bevat gegevens van een unieke student.
    • Primary key is kolom student_id.
  • Tabel course_subscriptions bevat de vakken (courses) waarvoor een student is ingeschreven.
    • Iedere student kan voor meerdere vakken ingeschreven staan.
    • Een foreign key is kolom student_id.

Hierbij is 1 record uit tabel students gelinkt aan 0 of meerdere records uit tabel course_subscriptions.

Dit op overeenkomstige kolommen student_id.

De one-to-many relatie is in de praktijk het meestvoorkomend.

Er is over het algemeen een relatie tussen een primary key en een foreign key.


3. SQL relationships: many-to-many relatie

Bij een many-to-many relatie is 1 record uit de ene tabel gelinkt aan 0 of meerdere records uit een andere tabel, en omgekeerd.

We bekijken het volgende voorbeeld:

sql many to many relationship voorbeeld

Hierin zien we het volgende:

  • Tabel students bevat een voornaam en achternaam van studenten.
    • Iedere rij bevat gegevens van een unieke student.
    • Primary key is kolom student_id.
  • Tabel course_subscriptions bevat de vakken (courses) waarvoor een student is ingeschreven.
    • Iedere student kan voor meerdere vakken ingeschreven staan.
    • Een foreign key is kolom student_id.
    • Een foreign key is kolom course_id.
  • Tabel courses bevat details van de vakken (courses).
    • Iedere rij bevat gegevens van een uniek vak.
    • Primary key is kolom course_id.

Iedere student kan voor meerdere vakken ingschreven staan. Ieder vak kan door meerdere studenten gevolgd worden.

Er is over het algemeen een relatie tussen primary key in de ene tabel, via foreign keys in een tussentabel, met een primary key in een andere tabel.


Samenvatting soorten SQL relaties

Er zijn verschillende soorten relaties:

  1. One-to-one: 1 record uit de ene tabel is gelinkt aan 0 of 1 record uit een andere tabel.
  2. One-to-many: 1 record uit de ene tabel is gelinkt aan 0 of meerdere records uit een andere tabel.
  3. Many-to-many: 1 record uit de ene tabel is gelinkt aan 0 of meerdere records uit een andere tabel, en omgekeerd.

De one-to-many SQL relatie is in de praktijk het meestvoorkomend.


Wil je nog veel meer leren over SQL? Bekijk dan onze SQL cursus voor data analyse of download onderstaande opleidingsbrochure. In onze SQL cursus wisselen theorie en praktijkoefening elkaar steeds af. Nadat je deze training hebt gevolgd kun je zelfstandig met SQL werken. Je kunt ook altijd even contact opnemen via info@datasciencepartners.nl of 020 - 24 43 146 als je een vraag hebt.

by: