Basis van databases

Wat is het resultaat als in SQL DELETE FROM Medewerker zonder WHERE-clausule wordt uitgevoerd?

  1. AAlle rijen van de tabel Medewerker worden verwijderd, en er blijft een lege tabel over
  2. BDe tabel zelf wordt verwijderd, en ook de definitie ervan verdwijnt
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. De kolom Punten van de tabel Toets bevat vier waarden: 80, NULL, 70, 90 (NULL betekent dat de persoon de toets niet heeft gemaakt). Wat is het resultaat van SELECT AVG(Punten) FROM Toets?
  2. De kolom Punten van de tabel Resultaat bevat zes waarden: 50, NULL, 70, NULL, 90, 30. Welk antwoord geeft in volgorde het resultaat van SELECT COUNT(*), COUNT(Punten), AVG(Punten) FROM Resultaat?
  3. Uit de tabel Medewerker (MedewerkerNr, Afdeling, Salaris) moeten de afdelingen met een gemiddeld salaris van 300 of meer worden opgevraagd, samen met dat gemiddelde. Welk SQL-statement is juist?
  4. De tabel Omzet (Filiaal, Bedrag) bevat zeven rijen: (A, 500), (A, 700), (B, 300), (B, 400), (C, 1200), (D, 200), (D, 900). Hoeveel rijen geeft SELECT Filiaal, SUM(Bedrag) FROM Omzet GROUP BY Filiaal HAVING SUM(Bedrag) >= 1000?
  5. De tabel Medewerker (Naam, Afdeling, Salaris) heeft acht rijen, met per afdeling de volgende salarissen: Verkoop 320, 280, 350; Ontwikkeling 400, 310; Administratie 260, 300; Planning 330. Hoeveel rijen geeft SELECT Afdeling, COUNT(*) FROM Medewerker WHERE Salaris >= 300 GROUP BY Afdeling HAVING COUNT(*) >= 2?