Delete vs Drop
Die Befehle Delete und Drop gehören zu SQL-Anweisungen (Structured Query Language) und werden beim Entfernen von Daten aus einer Datenbank verwendet. Löschen ist ein DML-Befehl (Data Manipulation Language). Es löscht einige oder alle Daten aus einer Tabelle gemäß der vom Benutzer angegebenen Bedingung. Delete-Anweisung entfernt nur die Datensätze in der Tabelle, die Tabellenstruktur ist jedoch in der Datenbank gleich. Der Drop-Befehl ist eine DDL-Anweisung (Data Definition Language) und verhält sich anders als der Delete-Befehl. Da es sich nicht um eine bedingte Anweisung handelt, werden alle Daten aus der Tabelle gelöscht. Außerdem werden die Tabellenstruktur und alle Verweise auf diese Tabelle dauerhaft aus der Datenbank entfernt.
Anweisung löschen
Wie oben erwähnt, werden mit der Delete-Anweisung Daten aus einer Tabelle basierend auf der bereitgestellten Bedingung entfernt. Die Where-Klausel wird mit Delete verwendet, um diese erforderliche Bedingung anzugeben. Wenn die Where-Klausel nicht mit Delete angegeben wird, werden alle Tabellendaten aus der Tabelle entfernt. Beim Löschen-Vorgang bleibt die vorhandene Tabellenstruktur jedoch unverändert. Daher muss der Benutzer die Tabellenstruktur nicht definieren, wenn er die Tabelle erneut verwenden möchte. Da Löschen ein DML-Befehl ist, wird nach der Ausführung kein Commit ausgeführt. Dies kann also rückgängig gemacht werden, um den vorherigen Vorgang rückgängig zu machen. Andernfalls sollte die Commit-Anweisung aufgerufen werden, um die Änderungen dauerhaft zu machen. Während der Ausführung der Delete-Anweisung zeichnet sie für jede Zeilenlöschung einen Eintrag im Transaktionsprotokoll auf. Dies wirkt sich also auf die Verlangsamung der Operation aus. Außerdem wird der nach der Ausführung belegte Speicherplatz nicht freigegeben.
Nachfolgend die Syntax für die Delete-Anweisung.
LÖSCHEN VON
oder
LÖSCHEN VON WO
Drop-Anweisung
Die Drop-Anweisung entfernt nicht nur alle Tabellendatensätze ohne Bedingung aus der Datenbank, sondern auch die Tabellenstruktur, Integritätsbedingungen, Indizes und Zugriffsberechtigungen der betreffenden Tabelle dauerhaft aus der Datenbank. Somit sind auch nicht mehr alle Beziehungen für andere Tabellen vorhanden, und Informationen über die Tabelle werden aus dem Datenwörterbuch entfernt. Wenn der Benutzer die Tabelle wiederverwenden möchte, muss er die Tabellenstruktur und alle anderen Verweise auf die Tabelle erneut definieren. Drop ist ein DDL-Befehl und kann nach Ausführung des Befehls nicht mehr rückgängig gemacht werden, da der Drop-Befehl eine automatische Festschreibung verwendet. Daher sollte der Benutzer bei der Verwendung dieses Befehls sehr vorsichtig sein. Die Drop-Anweisung kann nicht auf Systemtabellen angewendet werden und auch nicht für Tabellen mit Fremdschlüsseleinschränkungen.
Der Drop-Befehl kann nicht nur für SQL-Tabellen verwendet werden, sondern auch für Datenbanken, Ansichten und Tabellenspalten. Alle in diesen Objekten gespeicherten Daten gehen zusammen mit den Objekten für immer verloren.
Nachfolgend sehen Sie die typische Syntax für den Drop-Befehl.
DROP TABELLE
Was ist der Unterschied zwischen Löschen und Löschen?? 1. Mit den Befehlen Löschen und Löschen werden Tabellendaten aus einer Datenbank entfernt. 2. Die Delete-Anweisung führt jedoch ein bedingtes Löschen aus, während der Befehl Löschen die gesamten Datensätze in der Tabelle löscht. 3. Außerdem entfernt die Delete-Anweisung nur die Zeilen in der Tabelle und behält die Tabellenstruktur unverändert bei, während der Befehl Löschen alle Daten in der Tabelle und in der Tabellenstruktur sowie alle anderen Verweise aus der Datenbank entfernt. 4. Delete ist eine DML-Anweisung, wohingegen Drop ein DDL-Befehl ist. Der Löschvorgang kann daher rückgängig gemacht werden, und er wird nicht automatisch festgeschrieben, während der Löschvorgang nicht rückgängig gemacht werden kann, da es sich um eine automatisch festgelegte Anweisung handelt. 5. Der Drop-Befehl kann nicht für Tabellen verwendet werden, auf die durch Fremdschlüsseleinschränkungen verwiesen wurde. Stattdessen kann der Befehl Löschen verwendet werden. 6. Der Drop-Befehl sollte im Vergleich zur Delete-Anweisung in SQL-Anwendungen sorgfältig und mit gutem Verständnis verwendet werden.
|