DELETE Statements - Data Manipulation Language (SQL-DML)

https://oer-informatik.de/sql-dml-delete

tl/dr; Delete-Statements löschen selektierte Datensätzen. Sie gehören zur DML-Sprachfamilie, lassen also die Datenstruktur (z.B. auch Indexnummern) unangetastet. (zuletzt aktualisiert am 21.05.2023)

Die Sprachbestandteile der SQL-DML bilden die Methoden für Create, Read, Update, Delete. Letzteres wird mit dem Befehl DELETE umgesetzt, der folgende allgemeine Form hat:

An einem praktischen Beispiel:

Für den WHERE-Clause gelten die gleichen Voraussetzungen, wie beim SELECT-Statement. Der WHERE-Clause ist optional, wird er weggelassen werden alle Datensätze der Tabelle gelöscht. Die Autoincrement-Werte werden jedoch nicht zurückgesetzt (hierfür gibt es weitere Befehle, etwa TRUNCATE, was aber Bestandteil der DDL ist).

Als Railroad-Diagramm dargestellt ist die allgemeine Syntax des DELETE-Statements:

Railroad-Diagramm für DELETE
Railroad-Diagramm für DELETE

Sofern die Datenbank händisch bearbeitet wird, bietet es sich an, zunächst per SELECT-Befehl zu prüfen, ob die Bedingung des WHERE-Clauses auch nur die gewünschten Zeilen betrifft:

Trifft dies nach Kontrolle zu kann das SELECT * durch `DELETE ersetzt werden. Auf diesem Weg lassen sich schwerwiegende Folgen von Flüchtigkeitsfehler minimieren.

Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieses Werk und dessen Inhalte sind - sofern nicht angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “DELETE Statements - Data Manipulation Language (SQL-DML)” von H. Stein (oer-informatik.de), Lizenz: CC BY 4.0. Die Quellen dieses Werks sind verfügbar auf https://gitlab.com/oer-informatik/db-sql/dml-basics.

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: