Primary keys, foreign keys en constraints
Keys, uniciteit en referentiële integriteit uitleggen zoals een interviewer dat wil horen
Primary keys, foreign keys en constraints is een gratis Voorbereiding op SQL-sollicitatiegesprekken-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Voorbereiding op SQL-sollicitatiegesprekken. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Voorbereiding op SQL-sollicitatiegesprekken bevat in totaal 4 lessen.
Waarom sleutels altijd ter sprake komen
Na de definitie van SQL schakelen interviewers over op sleutels en beperkingen. Het verbindende thema is integriteit: regels die de database afdwingt, zodat onjuiste gegevens niet kunnen worden toegevoegd.
Wat een primaire sleutel is
Een primaire sleutel identificeert elke rij op unieke wijze. De sleutel is altijd uniek en NOT NULL, en een tabel heeft er maximaal één. Zeg dit helder en je scoort punten.
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
email VARCHAR(255) NOT NULL,
name VARCHAR(100)
);Natuurlijke versus surrogaatsleutels
Samengestelde primaire sleutels
Een primaire sleutel kan uit meer dan één kolom bestaan: een samengestelde sleutel. Je ziet deze in koppeltabellen, waar twee vreemde sleutels samen elke rij identificeren.
CREATE TABLE enrollments (
student_id INTEGER,
course_id INTEGER,
enrolled_on DATE,
PRIMARY KEY (student_id, course_id)
);Primaire sleutel versus unieke beperking
Een vraag die vrijwel zeker komt: primaire sleutel versus unieke beperking. Beide dwingen uniciteit af, maar een tabel heeft één primaire sleutel (NOT NULL) en meerdere unieke beperkingen, die elk een NULL toestaan.
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email VARCHAR(255) UNIQUE,
username VARCHAR(50) UNIQUE
);Wat een vreemde sleutel is
Een vreemde sleutel verwijst naar de primaire sleutel van een andere tabel en dwingt referentiële integriteit af: je kunt geen onderliggende rij toevoegen die verwijst naar een niet-bestaande bovenliggende rij.
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer_id INTEGER REFERENCES customers(id),
amount NUMERIC(10,2)
);Referentiële acties: ON DELETE / ON UPDATE
"Wat gebeurt er met bestellingen als de klant wordt verwijderd?" Dat is een referentiële actie: RESTRICT blokkeert dit (de standaard), CASCADE verwijdert onderliggende rijen en SET NULL wist de sleutel.
CREATE TABLE order_items (
id INTEGER PRIMARY KEY,
order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE
);NOT NULL, CHECK en DEFAULT
Drie andere beperkingen maken de integriteit compleet: NOT NULL verbiedt ontbrekende waarden, CHECK dwingt een regel af zoals stock >= 0 en DEFAULT levert een vervangende waarde.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
price NUMERIC(10,2) NOT NULL DEFAULT 0,
stock INTEGER CHECK (stock >= 0)
);Uitgewerkt voorbeeld: Ontwerpen met integriteit
Laten we de tabel voor leningen van een bibliotheek ontwerpen. De code hieronder gebruikt twee vreemde sleutels, een vervaldatum die NOT NULL is en een unieke regel, zodat een boek niet twee keer tegelijk kan worden uitgeleend.
CREATE TABLE loans (
id INTEGER PRIMARY KEY,
book_id INTEGER NOT NULL REFERENCES books(id),
member_id INTEGER NOT NULL REFERENCES members(id),
due_date DATE NOT NULL,
returned BOOLEAN DEFAULT false
);Praten over integriteit
Noem de drie soorten integriteit om diepgang te tonen: entiteitsintegriteit door primaire sleutels, referentiële integriteit door vreemde sleutels en domeinintegriteit door NOT NULL, CHECK en gegevenstypen.
Beperkingen toevoegen aan een bestaande tabel
Gevraagd om beperkingen aan een bestaande tabel toe te voegen? Gebruik ALTER TABLE ... ADD CONSTRAINT. Een subtiel punt dat je kunt noemen: dit kan mislukken als bestaande rijen de nieuwe regel al overtreden.
ALTER TABLE orders
ADD CONSTRAINT fk_orders_customer
FOREIGN KEY (customer_id) REFERENCES customers(id);Korte toets
Maak onderscheid tussen een primaire sleutel en een unieke beperking.
Samenvatting
Samenvatting: een primaire sleutel is uniek en NOT NULL, één per tabel; een unieke beperking staat een NULL toe en je kunt er meerdere hebben; een vreemde sleutel dwingt referentiële integriteit af.
Leer SQL met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Primary keys, foreign keys en constraints” gratis?
Ja — de volledige tekst van “Primary keys, foreign keys en constraints” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Voorbereiding op SQL-sollicitatiegesprekken wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Voorbereiding op SQL-sollicitatiegesprekken bevat in totaal 4 lessen.
Wat leer ik in “Primary keys, foreign keys en constraints”?
Keys, uniciteit en referentiële integriteit uitleggen zoals een interviewer dat wil horen Je oefent met Voorbereiding op SQL-sollicitatiegesprekken door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Voorbereiding op SQL-sollicitatiegesprekken te beginnen?
Ervaring vooraf is niet nodig. Voorbereiding op SQL-sollicitatiegesprekken op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Primary keys, foreign keys en constraints”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Voorbereiding op SQL-sollicitatiegesprekken?
Ja. Elke les over Voorbereiding op SQL-sollicitatiegesprekken bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Wat is SQL en waarom vragen interviewers ernaar
- Logische uitvoeringsvolgorde van query's
- Primary keys, foreign keys en constraints
- Onder tijdsdruk een schema lezen