OnderwerpenSpiekbriefjeLessen
Lurndo › Onderwerpen › Rijen verwijderen met DELETE

SQL leren: Rijen verwijderen met DELETE

Opruimen

Sinterklaas is voorbij, de aardbeien zijn uit het seizoen en drie klanten annuleerden hun bestelling. "Die rommel mag weg", zegt Jens. Voorzichtig: wat je verwijdert, is weg.

Rijen weghalen

DELETE FROM verwijdert rijen uit een tabel. Met WHERE kies je welke. Je noemt geen kolommen: je haalt altijd hele rijen weg.

Hier verdwijnt het klaasje uit de webshop. Onderaan zie je de verwijderde rij nog even, doorstreept.

DELETE FROM producten WHERE naam = 'Klaasje'
Resultaat

Eerst kijken, dan schrappen

Een DELETE zonder WHERE maakt de hele tabel leeg. Daarom werken goede analisten zo: eerst een SELECT * met dezelfde WHERE, en pas als die precies de juiste rijen toont, vervang je SELECT * door DELETE.

Hieronder de proef voor producten die niet meer actief zijn. Twee rijen: dat klopt.

SELECT * FROM producten WHERE actief = 0
Resultaat
idnaamcategorieprijsvoorraadglutenvrijactief
11Aardbeientaartgebak18.5200
17Klaasjeseizoen3.5300

Weesrijen

Elke bestelling heeft regels in bestelregels, die via bestelling_id naar de bestelling wijzen. Verwijder je alleen de bestelling, dan blijven haar regels achter. Ze wijzen naar een bestelling die niet meer bestaat: weesrijen.

Hier wordt bestelling 7 verwijderd. De query onderaan zoekt regels zonder bestelling, en vindt er nu één.

Veel databases weigeren zo'n DELETE zelfs. Verwijder dus eerst de regels en pas daarna de bestelling.

DELETE FROM bestellingen WHERE id = 7
Resultaat

Probeer het zelf

Verwijder alle producten die niet meer actief zijn.

Klaar voor meer?

De volledige les heeft 7 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.

Begin aan de les
← VorigePrijzen bijstellenVolgende →Alles of niets
SQL-onderwerpenSpiekbriefjeExcelRanglijstAccountPrivacyEnglish