SQL-trackLes 4 van 10

✏️ INSERT / UPDATE / DELETE

Data toevoegen, aanpassen en verwijderen — en waarom je altijd een WHERE nodig hebt.

⏱ 25 min6 stappenInteractieve SQL-sandbox
Stap 1 / 6

INSERT INTO — data toevoegen

Met INSERT INTO voeg je nieuwe rijen toe aan een tabel.

Syntaxis
-- Alle kolommen opgeven (volgorde = tabel-definitie)
INSERT INTO tabel VALUES (waarde1, waarde2, ...);

-- Expliciete kolomnamen (aanbevolen!)
INSERT INTO tabel (kolom1, kolom2) VALUES (waarde1, waarde2);

-- Meerdere rijen tegelijk
INSERT INTO tabel (kolom1, kolom2) VALUES
  (waarde1a, waarde2a),
  (waarde1b, waarde2b);
Voorbeelden
-- Nieuwe gebruiker toevoegen
INSERT INTO gebruikers (naam, email, leeftijd, actief)
VALUES ('Pieter Bakker', 'pieter@email.nl', 27, 1);

-- Nieuw product (id is AUTO INCREMENT — weglaten)
INSERT INTO producten (naam, prijs, categorie, voorraad)
VALUES ('Headset', 149.99, 'Elektronica', 20);
Tekst vs cijfers

Tekst (TEXT) zet je altijd tussen enkele aanhalingstekens 'zo'. Getallen (INTEGER, REAL) schrijf je zonder aanhalingstekens.

Stap 2 / 6

UPDATE — data aanpassen

Met UPDATE pas je bestaande rijen aan. Altijd met WHERE!

Syntaxis
UPDATE tabel
SET kolom1 = waarde1, kolom2 = waarde2
WHERE voorwaarde;
❌ ZONDER WHERE
UPDATE gebruikers
SET actief = 0;
-- ALLE gebruikers worden inactief!
✅ MET WHERE
UPDATE gebruikers
SET actief = 0
WHERE id = 3;
-- Alleen Sara wordt inactief
Meerdere kolommen tegelijk
-- Prijs en voorraad aanpassen van één product
UPDATE producten
SET prijs = 799.99, voorraad = 10
WHERE id = 1;

-- Alle Elektronica-producten 10% korting
UPDATE producten
SET prijs = prijs * 0.9
WHERE categorie = 'Elektronica';
Stap 3 / 6

DELETE — data verwijderen

DELETE verwijdert rijen permanent. Zonder WHERE verwijder je alles.

🚨 De gevaarlijkste query in SQL
-- Dit verwijdert ALLE rijen uit de tabel (tabel blijft wel bestaan)
DELETE FROM gebruikers;

-- DROP TABLE verwijdert de tabel zelf ook
DROP TABLE gebruikers;

In productie: zet altijd eerst een SELECT met dezelfde WHERE-conditie, zodat je ziet wat er verwijderd gaat worden.

Veilig verwijderen
-- Stap 1: controleer wat je gaat verwijderen
SELECT * FROM gebruikers WHERE actief = 0;

-- Stap 2: als het klopt, verwijder
DELETE FROM gebruikers WHERE actief = 0;

-- Één specifieke rij verwijderen (gebruik altijd id)
DELETE FROM orders WHERE id = 5;
💡 Soft delete — de betere aanpak

Professionele applicaties verwijderen records zelden echt. Ze gebruiken een verwijderd_op kolom en filteren die eruit bij queries. Zo kun je data herstellen.

UPDATE gebruikers SET verwijderd_op = '2024-01-20' WHERE id = 3;
SELECT * FROM gebruikers WHERE verwijderd_op IS NULL;
Stap 4 / 6

Transacties — alles of niets

Een transactie groepeert meerdere queries tot één atomaire operatie. Als één stap mislukt, worden alle wijzigingen teruggedraaid.

Klassiek voorbeeld — bankoverschrijving
BEGIN;  -- start transactie

UPDATE rekeningen SET saldo = saldo - 100 WHERE id = 1;  -- aftrekken
UPDATE rekeningen SET saldo = saldo + 100 WHERE id = 2;  -- bijschrijven

-- Als alles OK is:
COMMIT;

-- Als er iets misgaat:
-- ROLLBACK;  -- maakt alle wijzigingen ongedaan
BEGIN

Start de transactie. Alle queries worden gebufferd.

COMMIT

Sla alle wijzigingen definitief op.

ROLLBACK

Annuleer alle wijzigingen — ga terug naar de beginsituatie.

ACID-eigenschappen
Atomiciteit — alles of niets
Consistentie — altijd geldige state
Isolatie — gelijktijdige transacties blokkeren elkaar niet
Duurzaamheid — committed data overleeft crashes
Stap 5 / 6

Oefening — data manipuleren

De database is vooraf gevuld. Je kunt INSERT/UPDATE/DELETE uitvoeren en daarna met SELECT controleren wat er veranderd is.

🎯 Opdrachten
  1. Voeg een nieuwe gebruiker toe met jouw eigen naam
  2. Pas de prijs van de Laptop aan naar €849.99
  3. Zet gebruiker met id=3 op inactief (actief = 0)
  4. Controleer na elke stap met een SELECT-query
Resultaat verschijnt hier...

🧠 Kennischeck

✏️

Les 4 afgerond!

Je kunt nu data toevoegen, aanpassen en verwijderen — en je weet wanneer je een WHERE nodig hebt.

Les 5: CREATE TABLE →