✏️ INSERT / UPDATE / DELETE
Data toevoegen, aanpassen en verwijderen — en waarom je altijd een WHERE nodig hebt.
INSERT INTO — data toevoegen
Met INSERT INTO voeg je nieuwe rijen toe aan een tabel.
-- 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);
-- 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 (TEXT) zet je altijd tussen enkele aanhalingstekens 'zo'. Getallen (INTEGER, REAL) schrijf je zonder aanhalingstekens.
UPDATE — data aanpassen
Met UPDATE pas je bestaande rijen aan. Altijd met WHERE!
UPDATE tabel
SET kolom1 = waarde1, kolom2 = waarde2
WHERE voorwaarde;
UPDATE gebruikers
SET actief = 0;
-- ALLE gebruikers worden inactief!
UPDATE gebruikers
SET actief = 0
WHERE id = 3;
-- Alleen Sara wordt inactief
-- 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';
DELETE — data verwijderen
DELETE verwijdert rijen permanent. Zonder WHERE verwijder je alles.
-- 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.
-- 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;
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;
Transacties — alles of niets
Een transactie groepeert meerdere queries tot één atomaire operatie. Als één stap mislukt, worden alle wijzigingen teruggedraaid.
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
Start de transactie. Alle queries worden gebufferd.
Sla alle wijzigingen definitief op.
Annuleer alle wijzigingen — ga terug naar de beginsituatie.
Oefening — data manipuleren
De database is vooraf gevuld. Je kunt INSERT/UPDATE/DELETE uitvoeren en daarna met SELECT controleren wat er veranderd is.
- Voeg een nieuwe gebruiker toe met jouw eigen naam
- Pas de prijs van de Laptop aan naar €849.99
- Zet gebruiker met id=3 op inactief (
actief = 0) - Controleer na elke stap met een SELECT-query
🧠 Kennischeck
Les 4 afgerond!
Je kunt nu data toevoegen, aanpassen en verwijderen — en je weet wanneer je een WHERE nodig hebt.