Mit MySQL DELETE löschen Sie Einträge aus einer Tabelle. Sie können den Befehl nutzen, um einzelne oder alle Zeilen aus der Tabelle zu entfernen.

Was ist MySQL DELETE?

MySQL arbeitet mit Tabellen und hilft Ihnen so dabei, Ihre Daten zu struk­tu­rie­ren und über­sicht­lich zu speichern. Damit das Da­ten­bank­ma­nage­ment­sys­tem und die hin­ter­leg­ten Ein­tra­gun­gen aber tat­säch­lich immer auf dem neuesten Stand sind, müssen ab und an Daten gelöscht werden. Der passende Befehl der Software dafür ist MySQL DELETE. Mit dieser Funktion legen Sie ganz genau fest, welcher Datensatz entfernt werden soll. Dafür geben Sie die ent­spre­chen­den Daten an und fügen außerdem einen Hinweis ein, aus welcher Tabelle die Löschung erfolgen soll.

Die Syntax von MySQL DELETE

Die grund­sätz­li­che Syntax von MySQL DELETE ist schnell erklärt.  Für MySQL DELETE müssen Sie dem System zwei wichtige In­for­ma­tio­nen be­reit­stel­len. Das sieht so aus:

DELETE FROM tabelle
WHERE bedingung;
bash

Durch die In­for­ma­ti­on „FROM“ zeigen Sie dem System, aus welcher Tabelle der Datensatz gelöscht werden soll. Mit „WHERE“ spe­zi­fi­zie­ren Sie, welche Bedingung ein Datensatz erfüllen muss, um entfernt zu werden. Lassen Sie die Bedingung „WHERE“ weg, wird die gesamte Zeile gelöscht.

Beispiel für MySQL DELETE

Wie genau MySQL DELETE funk­tio­niert, er­schließt sich am ein­fachs­ten mit einem prak­ti­schen Beispiel. Dafür stellen wir uns ein Un­ter­neh­men mit einem Kun­den­ver­zeich­nis vor. Dieses ist in einer Tabelle namens „Kunden“ hin­ter­legt:

Kun­den­num­mer Name Stadt Land
1 Jones London Groß­bri­tan­ni­en
2 Mus­ter­mann Hamburg Deutsch­land
3 Schmidt Berlin Deutsch­land
4 Schmitz Wien Ös­ter­reich
5 Zur Linden München Deutsch­land

Wenn wir nun den Kunden bzw. die Kundin „Jones“ löschen möchten, nutzen wir dafür den Befehl MySQL DELETE. Folgendes wird dafür ein­ge­ge­ben:

DELETE FROM Kunden
WHERE Name = "Jones";
bash

Die ent­spre­chen­de Zeile wird so aus dem Kun­den­ver­zeich­nis entfernt.

Tabelle komplett leeren mit MySQL DELETE

Wie oben an­ge­deu­tet können Sie den Befehl MySQL DELETE auch dann nutzen, wenn Sie alle Zeilen aus einer Tabelle entfernen möchten, die Tabelle selbst dabei aber nicht gelöscht werden soll. Der ent­spre­chen­de Befehl passend zum obigen Beispiel sieht so aus:

DELETE FROM Kunden;
bash

So werden sämtliche Einträge entfernt; die Tabelle und ihr Aufbau bleiben al­ler­dings intakt.

MySQL DELETE LIMIT

Mit dem Zusatz „LIMIT“ können Sie die Anzahl der Zeilen, die mit MySQL DELETE gelöscht werden sollen, begrenzen. Dafür weisen Sie das System zunächst an, die Einträge zu sortieren. Die grund­sätz­li­che Syntax sieht so aus:

DELETE FROM tabelle
ORDER BY: bedingung
LIMIT: anzahl;
bash

Für ein Beispiel wie die Kun­den­lis­te oben könnten Sie den Befehl MySQL DELETE mit dem Zusatz „LIMIT“ so verwenden:

DELETE FROM Kunden
ORDER BY Name
LIMIT 2;
bash

In diesem Fall würde das System alle Kundinnen und Kunden al­pha­be­tisch nach dem An­fangs­buch­sta­ben ihrer Nachnamen sortieren und dann die ersten beiden löschen.

Eine al­ter­na­ti­ve Ver­wen­dung von MySQL DELETE mit „LIMIT“ sieht so aus:

DELETE FROM Kunden
WHERE Land = "Deutschland"
ORDER BY Name
LIMIT 2;
bash

In diesem Fall würden alle Kundinnen und Kunden aus Deutsch­land al­pha­be­tisch sortiert und dann die ersten beiden Einträge gelöscht werden.

Zum Hauptmenü