SQL DELETE ist der ein­fachs­te Befehl, wenn Sie einen Eintrag aus einer Tabelle entfernen möchten. Er er­mög­licht den Einsatz einer WHERE-Bedingung. Diese ist optional, ver­zich­ten Sie al­ler­dings auf sie, wird die gesamte Tabelle geleert.

Was ist SQL Delete?

Bei der Arbeit mit einer Tabelle wird es immer wieder vorkommen, dass ein Eintrag obsolet ist und somit nicht länger in Ihrem Datensatz auf­ge­führt werden soll. Möchten Sie einen solchen Eintrag entfernen, stellt Ihnen die Struc­tu­red Query Language die Anweisung SQL DELETE zur Verfügung. Mit dieser weisen Sie das System an, einen oder mehrere bestimmte Einträge zu löschen. Um si­cher­zu­ge­hen, dass lediglich die ge­wünsch­ten Daten aus der Tabelle genommen werden, ist der Einsatz der Anweisung WHERE von großer Bedeutung. Ver­zich­ten Sie auf diesen Zusatz, werden sämtliche Einträge aus der Tabelle entfernt. Hier ist daher größte Vorsicht geboten.

vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Syntax und Funk­ti­ons­wei­se

In der Syntax von SQL DELETE ist die Spe­zi­fi­ka­ti­on durch den Zusatz WHERE im­pli­ziert. Den SQL-Befehl bilden Sie somit immer auf diese Weise:

DELETE FROM name_der_tabelle
WHERE bedingung;
sql

In der ersten Zeile in­iti­ie­ren Sie den ei­gent­li­chen Befehl und spe­zi­fi­zie­ren, in welcher Tabelle die Löschung vor­ge­nom­men werden soll. Die zweite Zeile ist optional. Hier hin­ter­le­gen Sie, welche Bedingung eine Zeile erfüllen muss, um für die Löschung be­rück­sich­tigt zu werden. Ver­zich­ten Sie auf diesen Zusatz, be­rück­sich­tigt das System alle Zeilen in dieser Tabelle und entfernt sie.

Einen oder mehrere Einträge entfernen

Am ein­fachs­ten lässt sich die Funk­ti­ons­wei­se von SQL DELETE mit Hilfe eines Beispiels erklären. Dafür erstellen wir eine fiktive Tabelle namens „Kun­den­lis­te“. Diese enthält un­ter­schied­li­che Einträge zu Kundinnen und Kunden eines Un­ter­neh­mens und umfasst eine Kun­den­num­mer, den Namen und den Standort. So sieht diese Tabelle aus:

Kun­den­num­mer Name Standort
1427 Schmidt Berlin
1377 Schulz Hamburg
1212 Peters Hamburg
1431 Müller München
1118 Becker Passau

Wenn Sie nun den Kunden Schulz aus Ihrer Liste löschen möchten, wenden Sie die Anweisung fol­gen­der­ma­ßen an:

DELETE FROM Kundenliste
WHERE Kundennummer = 1377;
sql

Da nur der Kunde Schulz die Kun­den­num­mer 1377 hat, sieht die Tabelle im Anschluss so aus:

Kun­den­num­mer Name Standort
1427 Schmidt Berlin
1212 Peters Hamburg
1431 Müller München
1118 Becker Passau

Al­ter­na­tiv hätten Sie als Bedingung unter WHERE den Namen 'Schulz' wählen können.

Das Löschen mehrerer Kundinnen und Kunden funk­tio­niert nach einem ähnlichen Prinzip. In unserem Beispiel könnten wir sämtliche Einträge mit dem Standort Hamburg entfernen. Dies wäre der passende Code:

DELETE FROM Kundenliste
WHERE Standort = 'Hamburg';
sql

Da zwei Einträge diesen Wert haben, sieht die Tabelle dann aus wie folgt:

Kun­den­num­mer Name Standort
1427 Schmidt Berlin
1431 Müller München
1118 Becker Passau

Alle Einträge aus einer Tabelle entfernen

Wenn Sie bei der Durch­füh­rung von SQL DELETE auf die Bedingung WHERE ver­zich­ten, entfernen Sie sämtliche Einträge. Die Tabelle bleibt trotzdem bestehen. Sie ist nach der Durch­füh­rung al­ler­dings leer. Für unser Beispiel wäre dies die passende Anweisung:

DELETE FROM Kundenliste;
sql

Sie sollten mit diesem Befehl daher unbedingt vor­sich­tig umgehen.

Die komplette Tabelle löschen mit DROP TABLE

Möchten Sie die gesamte Tabelle entfernen, ist die Anweisung DROP TABLE die passende Wahl. Dies ist ihre Syntax:

DROP TABLE name_der_tabelle;
sql

Für unser Beispiel wäre dies daher der ent­spre­chen­de Code:

DROP TABLE Kundenliste;
sql

Ähnliche Befehle wie SQL DELETE

Eine Al­ter­na­ti­ve zu SQL DELETE ist der Befehl TRUNCATE TABLE. Dieser kann jedoch nur genutzt werden, um sämtliche Einträge in einer Tabelle auf einmal zu entfernen. Er un­ter­stützt keine WHERE-Bedingung. Eine neue Tabelle erstellen Sie mit SQL CREATE TABLE. Um zu ver­hin­dern, dass Sie Daten ver­se­hent­lich un­wie­der­bring­lich löschen, sind re­gel­mä­ßi­ge Backups emp­feh­lens­wert. Dafür verwenden Sie SQL BACKUP DATABASE.

Tipp

Pro­fi­tie­ren Sie von Top-Per­for­mance! Mit SQL-Server-Hosting von IONOS haben Sie die Wahl zwischen MSSQL, MySQL und MariaDB. Per­sön­li­cher Support, hohe Ge­schwin­dig­kei­ten und eine erst­klas­si­ge Si­cher­heits­ar­chi­tek­tur sind al­ler­dings in jedem Fall ga­ran­tiert.

Zum Hauptmenü