Basis van databases
Wat is het resultaat als in SQL DELETE FROM Medewerker zonder WHERE-clausule wordt uitgevoerd?
- AAlle rijen van de tabel Medewerker worden verwijderd, en er blijft een lege tabel over
- BDe tabel zelf wordt verwijderd, en ook de definitie ervan verdwijnt
- COmdat er geen WHERE-clausule is, treedt er een fout op en wordt er niets verwijderd
Antwoord en toelichting tonen
Antwoord: A. Alle rijen van de tabel Medewerker worden verwijderd, en er blijft een lege tabel over
DELETE is een DML-statement dat rijen uit een tabel verwijdert. Met een voorwaarde in een WHERE-clausule worden alleen de rijen verwijderd die eraan voldoen; wordt de WHERE-clausule weggelaten, dan wordt elke rij verwijderd. Ook nadat DELETE alle rijen heeft verwijderd, blijft de definitie van de tabel (kolomnamen, typen en beperkingen) bestaan, dus kunnen er met INSERT weer rijen worden toegevoegd. De tabel zelf inclusief definitie verwijderen gebeurt met het DDL-statement DROP TABLE Medewerker. Hetzelfde geldt voor UPDATE: wie de WHERE-clausule vergeet, wijzigt elke rij, dus het is belangrijk de voorwaarde vóór het uitvoeren te controleren. Binnen een transactie kan de wijziging vóór COMMIT met ROLLBACK ongedaan worden gemaakt.