MySQL DELETE: So entfernen Sie Einträge aus einer Tabelle

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 strukturieren und übersichtlich zu speichern. Damit das Datenbankmanagementsystem und die hinterlegten Eintragungen aber tatsächlich 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 entsprechenden Daten an und fügen außerdem einen Hinweis ein, aus welcher Tabelle die Löschung erfolgen soll.

Die Syntax von MySQL DELETE

Die grundsätzliche Syntax von MySQL DELETE ist schnell erklärt.  Für MySQL DELETE müssen Sie dem System zwei wichtige Informationen bereitstellen. Das sieht so aus:

DELETE FROM tabelle
WHERE bedingung;
bash

Durch die Information „FROM“ zeigen Sie dem System, aus welcher Tabelle der Datensatz gelöscht werden soll. Mit „WHERE“ spezifizieren 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 funktioniert, erschließt sich am einfachsten mit einem praktischen Beispiel. Dafür stellen wir uns ein Unternehmen mit einem Kundenverzeichnis vor. Dieses ist in einer Tabelle namens „Kunden“ hinterlegt:

Kundennummer

Name

Stadt

Land

1

Jones

London

Großbritannien

2

Mustermann

Hamburg

Deutschland

3

Schmidt

Berlin

Deutschland

4

Schmitz

Wien

Österreich

5

Zur Linden

München

Deutschland

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 eingegeben:

DELETE FROM Kunden
WHERE Name = "Jones";
bash

Die entsprechende Zeile wird so aus dem Kundenverzeichnis entfernt.

Tabelle komplett leeren mit MySQL DELETE

Wie oben angedeutet 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 entsprechende 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 allerdings 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 grundsätzliche Syntax sieht so aus:

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

Für ein Beispiel wie die Kundenliste 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 alphabetisch nach dem Anfangsbuchstaben ihrer Nachnamen sortieren und dann die ersten beiden löschen.

Eine alternative Verwendung 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 Deutschland alphabetisch sortiert und dann die ersten beiden Einträge gelöscht werden.