Unterschied zwischen Löschen und Abschneiden

Unterschied zwischen Löschen und Abschneiden
Unterschied zwischen Löschen und Abschneiden

Video: Unterschied zwischen Löschen und Abschneiden

Video: Unterschied zwischen Löschen und Abschneiden
Video: Outlook-Postfach leeren und E-Mails archivieren 2024, Juli
Anonim

Löschen vs. Abschneiden

Beide SQL-Befehle (Structure Query Language), Delete und Truncate, werden verwendet, um Daten zu entfernen, die in Tabellen einer Datenbank gespeichert sind. Delete ist eine DML-Anweisung (Data Manipulation Language) und entfernt einige oder alle Zeilen einer Tabelle. Die „Where-Klausel“wird verwendet, um die Zeilen anzugeben, die gelöscht werden müssen, und wenn die Where-Klausel nicht mit der Delete-Anweisung verwendet wird, entfernt sie alle Daten in der Tabelle. Truncate ist eine DDL-Anweisung (Data Definition Language) und entfernt ganze Daten aus der Tabelle. Beide Befehle zerstören nicht die Tabellenstruktur und die Verweise auf die Tabelle, und nur die Daten werden nach Bedarf entfernt.

Anweisung löschen

Delete-Anweisung ermöglicht es dem Benutzer, Daten aus einer vorhandenen Tabelle in einer Datenbank basierend auf einer bestimmten Bedingung zu entfernen, und die „Where-Klausel“wird zur Bestimmung dieser Bedingung verwendet. Der Delete-Befehl wird als protokollierte Ausführung bezeichnet, da er jeweils nur eine Zeile löscht und für jede Zeilenlöschung einen Eintrag im Transaktionsprotokoll beibehält. Dies führt also dazu, dass der Vorgang langsamer wird. Delete ist eine DML-Anweisung und wird daher beim Ausführen des Befehls nicht automatisch festgeschrieben. Daher kann der Löschvorgang bei Bedarf rückgängig gemacht werden, um erneut auf die Daten zuzugreifen. Nach der Ausführung des Delete-Befehls sollte dieser festgeschrieben oder zurückgesetzt werden, um Änderungen dauerhaft zu speichern. Die Delete-Anweisung entfernt nicht die Tabellenstruktur der Tabelle aus der Datenbank. Außerdem wird der von der Tabelle belegte Speicherplatz nicht freigegeben.

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

LÖSCHEN VON

oder

VON WO LÖSCHEN

Anweisung abschneiden

Truncate-Anweisung entfernt alle Daten aus einer bestehenden Tabelle in einer Datenbank, behält jedoch die gleiche Tabellenstruktur bei, auch die Integritätsbeschränkungen, Zugriffsrechte und die Beziehungen zu anderen Tabellen. Es ist also nicht erforderlich, die Tabelle erneut zu definieren, und die alte Tabellenstruktur kann verwendet werden, wenn der Benutzer die Tabelle erneut verwenden möchte. Truncate entfernt ganze Daten, indem die Datenseiten freigegeben werden, die zum Aufbewahren von Daten verwendet werden, und nur diese Seitenfreigaben werden im Transaktionsprotokoll gespeichert. Daher verwendet der Befehl truncate nur weniger System- und Transaktionsprotokollressourcen für den Betrieb und ist daher schneller als andere verwandte Befehle. Truncate ist ein DDL-Befehl, daher verwendet er automatische Commitments vor und nach der Ausführung der Anweisung. Daher kann truncate die Daten in keiner Weise wieder rückgängig machen. Es gibt nach der Ausführung von der Tabelle belegten Speicherplatz frei. Die Truncate-Anweisung kann jedoch nicht auf die Tabellen angewendet werden, auf die durch Fremdschlüsseleinschränkungen verwiesen wird.

Following ist die allgemeine Syntax für Truncate-Anweisungen.

TABELLE TRUNCATE

Was ist der Unterschied zwischen Löschen und Abschneiden?

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

2. Der Delete-Befehl kann jedoch verwendet werden, um nur bestimmte Zeilen in einer Tabelle mit einer relevanten Bedingung zu löschen, oder um alle Zeilen ohne Bedingung zu löschen, während der Truncate-Befehl nur zum Löschen ganzer Daten in der Tabelle verwendet werden kann.

3. Delete ist ein DML-Befehl und kann den Vorgang bei Bedarf rückgängig machen, aber Truncate ist ein DDL-Befehl, also eine Auto-Commit-Anweisung und kann in keiner Weise rückgängig gemacht werden. Daher ist es wichtig, diesen Befehl bei der Datenbankverw altung sorgfältig zu verwenden.

4. Der Abschneidevorgang verbraucht weniger Systemressourcen und Transaktionsprotokollressourcen als der Löschvorgang, daher wird Abschneiden als schneller angesehen als der Löschvorgang.

5. Außerdem gibt Delete den von der Tabelle verwendeten Speicherplatz nicht frei, während Truncate den nach der Ausführung verwendeten Speicherplatz freigibt, sodass Delete nicht effizient ist, wenn die gesamten Daten aus einer Datenbanktabelle gelöscht werden.

6. Truncate darf jedoch nicht verwendet werden, wenn auf die Tabelle durch eine Fremdschlüsseleinschränkung verwiesen wird, und in diesem Fall kann der Delete-Befehl anstelle von Truncate verwendet werden.

7. Schließlich haben beide Befehle Vor- und Nachteile bei der Anwendung in Datenbankverw altungssystemen, und der Benutzer sollte sich bewusst sein, diese Befehle angemessen zu verwenden, um gute Ergebnisse zu erzielen.

Empfohlen: