SQL Schnellstart – Delete

Bisher haben wir Daten abgefragt, Daten geupdatet und neue Einträge in unsere Datenbanktabellen eingefügt. Ein wichtiger Aspekt bleibt aber noch offen - das Löschen. In diesem Artikel wirst du lernen, wie du Einträge aus deiner Datenbank entfernen kannst.

SQL DELETE Anweisung

Das Schlüsselwort DELETE wird in SQL dazu verwendet, Einträge aus einer bestimmten Tabelle zu löschen. Mit einer Bedingung kann man angeben, welche Daten genau gelöscht werden sollen.

SQL DELETE Syntax

Die Syntax von DELETE sieht folgendermaßen aus:

DELETE FROM tabellenname
WHERE bedingung;

Hinweis: Lässt du das WHERE weg, so werden alle Einträge in deiner Tabelle entfernt! Es ist daher empfehlenswert, über eine SELECT-Abfrage und der jeweiligen WHERE Bedingung vorher nachzuschauen, welche Einträge von der Löschung betroffen sind. Bei der Löschung von Daten muss man immer vorsichtig sein!

SQL DELETE Beispiel

Knüpfen wir erneut an die letzte Lektion an. Dort warst du Geschäftsführer eines IT-Startups für Datenbankentwicklung. Deine Mitarbeiterdaten sind in einer Tabelle "Mitarbeiter" gespeichert:

Deine Mitarbeiterin "Vanessa Mauer" möchte sich selbstständig machen und hat deshalb gekündigt. Mit folgender SQL-Anweisung kann man die Mitarbeiterin "Vanessa Mauer" entfernen.

DELETE FROM Mitarbeiter
WHERE Vorname = 'Vanessa' AND Nachname = 'Mauer';

SQL DELETE Codeaufgabe

Aufgrund finanzieller Probleme bist du gezwungen, die Mitarbeiter "Martin Müller" und "Vanessa Bachmeier" zu entlassen. Erstelle eine SQL-Abfrage, die beide Mitarbeiter aus der "Mitarbeiter"-Tabelle entfernt. Die Lösung findest du unten.

[lp_spoiler title="Lösung anzeigen"]

Lösung:

DELETE FROM Mitarbeiter
WHERE (Vorname = 'Martin' AND Nachname = 'Müller') OR (Vorname = 'Vanessa' AND Nachname = 'Bachmeier');

Ausgabe:

Prüfe, ob die Mitarbeiter gelöscht wurden, in dem du den SQL-Befehl SELECT * FROM Mitarbeiter; ans Ende des Code-Editors schreibst.

[/lp_spoiler]

Fazit

Du weißt nun, wie du deine Einträge bei Bedarf einfach wieder löschen kannst. Verwendest du DELETE, solltest du mit einer SELECT-Abfrage und der jeweiligen Bedingung prüfen, welche Einträge du genau löschst.