Probleem:
U wilt een rij/rijen uit een tabel verwijderen.
Voorbeeld 1:
In het exam
tabel staan de namen van de studenten en de resultaten van het examen.
naam | resultaat |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
U wilt de rij voor Ellen Thornton verwijderen.
Oplossing 1:
DELETE FROM exam WHERE name = 'Ellen Thornton';
De tabel exam
ziet er nu zo uit:
naam | resultaat |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Discussie:
Gebruik DELETE FROM
met de naam van de tabel waaruit u een rij wilt verwijderen. In WHERE
, schrijf de voorwaarde die de rij specificeert. Als u een specifieke rij in gedachten heeft, kunt u de voorwaarde het beste schrijven met behulp van de kolom met unieke waarden. Hier is de unieke kolom name
.
Als er veel rijen zijn waarvan de naam gelijk is aan 'Ellen Thornton
', ze worden allemaal verwijderd. Als zo'n naam niet bestaat, worden er geen rijen verwijderd.
Voorbeeld 2:
In het exam
tabel, zijn er namen van de studenten en de resultaten van het examen, net als in het vorige voorbeeld.
naam | resultaat |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
U wilt alle rijen verwijderen waarvoor het result
is groter dan 10
.
Oplossing 2:
DELETE FROM exam WHERE result > 10;
Het exam
tabel ziet er nu als volgt uit:
naam | resultaat |
---|---|
Janet Morgen | 9 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Discussie:
Soms weet u niet precies welke rijen u moet verwijderen of hoeveel rijen u moet verwijderen. U kunt de voorwaarde schrijven waarvoor de rijen moeten worden verwijderd. Er kunnen veel rijen zijn die aan de voorwaarde voldoen, het kan slechts één rij zijn of helemaal geen rijen.
Natuurlijk kun je meerdere voorwaarden schrijven in WHERE
, voeg ze samen met AND
of OR
, bijvoorbeeld:
DELETE FROM exam WHERE result > 10 AND name LIKE 'J%';