Zeilen löschen (DELETE)
Die Informationen in der Datenbank können nicht nur geändert, sondern natürlich auch gelöscht werden.
Dazu wird die "DELETE
"-Anweisung verwendet.
Vorwissen
Durch die Syntax der "DELETE
"-Anweisung sind schnell große Fehler gemacht.
Wie auch bei der "UPDATE
"-Anweisung können wir durch unzureichende Prüfung der Bedingungen in der Anfrage schnell einen großen Datensatz verändern.
Im schlimmsten Fall sind alle Datensätze in der Tabelle gelöscht.
DELETE
Die "DELETE
"-Anweisung teilt der Datenbank mit, dass wir Informationen löschen möchten.
Nach dem Schlüsselwort "DELETE
" folgt das Schlüsselwort "FROM
", um anzugeben, von welcher Tabelle wir die Daten löschen möchten.
Nachdem der Tabellenname angegeben wurde, wird mit der "WHERE
"-Klausel die Bedingung gestellt, welche Zeilen gelöscht werden sollen.
Die Zeilen, die nach der "WHERE
"-Klausel "true
" ausgeben, werden nach der Anweisung gelöscht.
DELETE FROM person WHERE person_id='2';
Die Zeile von der Person mit der "person_id 2" wurde nun aus der Tabelle entfernt.
Mehrere Zeilen gleichzeitig löschen
Sollte es erforderlich sein, mehrere Zeilen gleichzeitig zu löschen, so kann das auch mit der "DELETE
"-Anweisung ausgeführt werden.
Einfach eine allgemeinere Bedingung schreiben und schon werden Beispielsweise alle Zeilen gelöscht, dessen Spalte "familienstand" den Wert "Geschieden" hat.
DELETE FROM person WHERE familienstand='Geschieden';
TRUNCATE
Achtung!
Der rabiate Weg, um gleich den gesamten Inhalt der Tabelle zu löschen, ist die Anweisung "TRUNCATE
".
Bei der "TRUNCATE
"-Anweisung werden keine Informationen geschrieben, die ein Rückgängigmachen der Anweisung ermöglichen.
Das dauerhafte und unwiderrufliche Löschen aller Informationen in der Tabelle ist auch von der Datenbank selber anhängig.
MySQL und MS SQL Server Datenbanken erlauben beispielsweise kein rückgängig machen einer "TRUNCATE
"-Anweisung.
Weiter mit Tabellen anlegen (Datentypen)