Unterschied zwischen Löschen und Abschneiden

Anonim

Löschen vs Abtrennen

Beide Befehle SQL (Structure Query Language), löschen und abschneiden werden verwendet, um Daten in Tabellen in einer Datenbank. Delete ist eine DML-Anweisung (Data Manipulation Language) und entfernt einige oder alle Zeilen einer Tabelle. Mit der 'Where-Klausel' werden die zu löschenden Zeilen angegeben. Wenn die Where-Klausel nicht mit der Delete-Anweisung verwendet wird, werden alle Daten in der Tabelle entfernt. Truncate ist eine DDL-Anweisung (Datendefinitionssprache) und entfernt vollständige Daten aus der Tabelle. Beide Befehle zerstören die Tabellenstruktur und die Verweise auf die Tabelle nicht, und nur die Daten werden bei Bedarf entfernt.

Delete-Anweisung

Die Delete-Anweisung ermöglicht es dem Benutzer, Daten aus einer vorhandenen Tabelle in einer Datenbank auf der Grundlage einer bestimmten Bedingung zu entfernen, und die 'Where-Klausel' wird zur Bestimmung dieser Bedingung verwendet. Der Löschbefehl wird als eine protokollierte Ausführung bezeichnet, da nur jeweils eine Zeile gelöscht wird und ein Eintrag für jede Zeilenlöschung im Transaktionsprotokoll gespeichert wird. Dies führt dazu, dass die Operation langsamer wird. Delete ist eine DML-Anweisung und wird daher beim Ausführen des Befehls nicht automatisch übergeben. Daher kann der Löschvorgang zurückgesetzt werden, um bei Bedarf erneut auf die Daten zuzugreifen. Nach der Ausführung des Löschbefehls sollte es festgeschrieben oder zurückgesetzt werden, um die Änderungen dauerhaft zu speichern. Delete-Anweisung entfernt die Tabellenstruktur der Tabelle nicht aus der Datenbank. Außerdem wird der von der Tabelle verwendete Speicherplatz nicht freigegeben.

Die typische Syntax für den Löschbefehl wird unten angegeben.

DELETE FROM

oder

DELETE FROM WHERE

Anweisung abschneiden

Die Anweisung Truncate entfernt alle Daten aus einer vorhandenen Tabelle in einer Datenbank, behält aber die gleiche Tabellenstruktur, Zugriffsrechte und die Beziehungen zu anderen Tabellen. Es ist daher nicht erforderlich, die Tabelle erneut zu definieren, und die alte Tabellenstruktur kann verwendet werden, wenn der Benutzer die Tabelle erneut verwenden möchte. Durch Abschneiden werden die gesamten Daten entfernt, indem die Datenseiten, die zum Speichern von Daten verwendet werden, aufgehoben werden. Nur diese Seitenfreigaben werden im Transaktionsprotokoll gespeichert. Der Befehl truncate verwendet daher nur wenige System- und Transaktionsprotokollressourcen für die Operation, sodass er schneller als andere verwandte Befehle ist. Truncate ist ein DDL-Befehl, daher verwendet er vor und nach der Ausführung der Anweisung automatische Zuweisungen. Daher kann truncate die Daten in keiner Weise erneut rückgängig machen. Es gibt Speicherplatz frei, der von der Tabelle nach der Ausführung verwendet wird. Die Anweisung Truncate kann jedoch nicht auf die Tabellen angewendet werden, auf die Fremdschlüsselbeschränkungen Bezug nehmen.

Es folgt die allgemeine Syntax für die Truncate-Anweisung.

TRUNCATE TABLE

Was ist der Unterschied zwischen Delete und Truncate?

1. Die Befehle "Löschen" und "Trennen" entfernen Daten aus vorhandenen Tabellen in einer Datenbank, ohne die Tabellenstruktur oder andere Verweise auf die Tabelle zu beschädigen.

2. Mit dem Befehl Löschen können jedoch nur bestimmte Zeilen in einer Tabelle gelöscht werden, die eine relevante Bedingung verwenden, oder alle Zeilen ohne Bedingung löschen, während der Befehl Abschneiden nur zum Löschen der gesamten Daten in der Tabelle verwendet werden kann.

3. Löschen ist ein DML-Befehl, der die Operation bei Bedarf rückgängig machen kann. Truncate ist jedoch ein DDL-Befehl, daher handelt es sich um eine Auto Commit-Anweisung, die auf keine Weise zurückgesetzt werden kann. Daher ist es wichtig, diesen Befehl in der Datenbankverwaltung sorgfältig zu verwenden.

4. Die Abschneideoperation beansprucht weniger Systemressourcen und Transaktionsprotokollressourcen als die Löschoperation, daher wird Abschneiden als schneller als Löschen betrachtet.

5. Außerdem löscht Delete nicht den von der Tabelle verwendeten Speicherplatz, während Truncate den nach der Ausführung verwendeten Speicherplatz freigibt, sodass Delete im Fall des Löschens der gesamten Daten aus einer Datenbanktabelle nicht effizient ist.

6. Truncate ist jedoch nicht zulässig, wenn die Tabelle von einer Fremdschlüsselbeschränkung referenziert wird. In diesem Fall kann der Befehl Löschen anstelle von Truncate verwendet werden.

7. Schließlich haben beide dieser Befehle Vorteile und Nachteile bei der Anwendung in Datenbankverwaltungssystemen, und der Benutzer sollte sich bewusst sein, diese Befehle entsprechend zu verwenden, um gute Ergebnisse zu erzielen.