Löschen vs. Verwerfen
Sowohl die Delete- als auch die Drop-Befehle 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 Bedingung, die der Benutzer angegeben hat. Delete-Anweisung entfernt nur die Datensätze in der Tabelle, aber die Tabellenstruktur präsentiert sich in der Datenbank gleich. Der Drop-Befehl ist eine DDL-Anweisung (Data Definition Language) und verhält sich anders als der Delete-Befehl. Es ist keine bedingte Anweisung, löscht also ganze Daten aus der Tabelle, außerdem entfernt es die Tabellenstruktur und alle Verweise auf diese Tabelle dauerhaft aus der Datenbank.
Anweisung löschen
Wie oben erwähnt, entfernt die Delete-Anweisung Daten aus einer Tabelle basierend auf der bereitgestellten Bedingung, und 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öschvorgang bleibt die vorhandene Tabellenstruktur jedoch gleich. Daher muss der Benutzer die Tabellenstruktur nicht definieren, wenn er die Tabelle erneut verwenden möchte. Da Delete ein DML-Befehl ist, wird er nach der Ausführung nicht automatisch übernommen. 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 wird für jede Zeilenlöschung ein Eintrag im Transaktionsprotokoll aufgezeichnet. Dies wirkt sich also auf die Verlangsamung des Betriebs aus. Außerdem wird der nach der Ausführung verwendete Speicherplatz nicht freigegeben.
Following ist die Syntax für die Delete-Anweisung.
LÖSCHEN VON
oder
VON WO LÖSCHEN
Drop-Anweisung
Drop-Anweisung entfernt nicht nur alle Tabelleneinträge bedingungslos aus der Datenbank, sondern entfernt auch die Tabellenstruktur, Integritätsbedingungen, Indizes und Zugriffsrechte der betreffenden Tabelle dauerhaft aus der Datenbank. Damit sind auch alle Beziehungen zu anderen Tabellen nicht mehr vorhanden und Informationen über die Tabelle werden aus dem Data Dictionary entfernt. Wenn der Benutzer also 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 der Ausführung des Befehls nicht wieder rückgängig gemacht werden, da der Drop-Befehl eine automatische Zusage verwendet. Daher sollte der Benutzer bei der Verwendung dieses Befehls sehr vorsichtig sein. Die Drop-Anweisung kann nicht auf Systemtabellen angewendet werden und kann auch nicht für Tabellen verwendet werden, die Fremdschlüsselbeschränkungen haben.
Drop-Befehl kann nicht nur für SQL-Tabellen verwendet werden, sondern auch für Datenbanken, Ansichten und Tabellensp alten, und alle in diesen Objekten gespeicherten Daten gehen zusammen mit den Objekten für immer verloren.
Following ist die typische Syntax für Drop-Befehl.
DROP TABLE
Was ist der Unterschied zwischen Löschen und Ablegen?
1. Befehle zum Löschen und Ablegen entfernen Tabellendaten aus einer Datenbank.
2. Aber die Delete-Anweisung führt eine bedingte Löschung durch, während der Drop-Befehl ganze 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 bei, während der Drop-Befehl alle Daten in der Tabelle und der Tabellenstruktur entfernt und auch alle anderen Referenzen aus der Datenbank entfernt.
4. Delete ist eine DML-Anweisung, während Drop ein DDL-Befehl ist. Daher kann der Delete-Vorgang rückgängig gemacht werden und wird nicht automatisch festgeschrieben, während der Drop-Vorgang in keiner Weise rückgängig gemacht werden kann, da es sich um eine automatisch festgeschriebene Anweisung handelt.
5. Der Drop-Befehl kann nicht für Tabellen verwendet werden, auf die durch Fremdschlüsseleinschränkungen verwiesen wurde, während der Delete-Befehl stattdessen verwendet werden kann.
6. Der Drop-Befehl sollte im Vergleich zur Delete-Anweisung in SQL-Anwendungen vorsichtig und mit gutem Verständnis verwendet werden.