Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen den SQL-Befehlen delete und truncate?
Sowohl Lösch- als auch Truncate-Befehle können zum Löschen von Daten (Datensätzen) in SQL verwendet werden. Was ist also der Unterschied zwischen ihnen? Der folgende Artikel stellt Ihnen den Unterschied zwischen Lösch- und Abschneidebefehlen vor. Ich hoffe, dass er für Sie hilfreich ist.
Was ist der Löschbefehl?
Der Löschbefehl hilft beim Löschen von Datensätzen aus einer Tabelle in der Datenbank. [Video-Tutorial-Empfehlung: MySQL-Tutorial]
Beispiel: Das Folgende ist eine Schülertabelle mit 3 Feldern: student_id, Name, Noten
Sie können den SQL-Löschbefehl verwenden, um alle Datensätze in der Schülertabelle zu löschen:
delete from student;
Sie können auch bestimmte Datensätze in der Schülertabelle löschen:
delete from student where student_id =2;
Das obige SQL Der Befehl löscht den Datensatz mit student_id 2. Nach der Ausführung dieser Anweisung enthält die Tabelle nur noch zwei Datensätze: Datensätze mit student_id 1 und 3.
Was ist der Truncate-Befehl?
Der Befehl „truncate“ hilft beim Löschen aller Datensätze aus der Tabelle. Außerdem wird die Tabellenstruktur aus der Datenbank entfernt. Wenn also der Befehl „truncate“ für eine bestimmte Tabelle ausgeführt wird, initialisiert er auch den Primärschlüssel.
Der folgende SQL-Befehl löscht alle Datensätze in der Schülertabelle. Darüber hinaus wird die Tabellenstruktur aus der Datenbank entfernt.
truncate table student;
Was ist der Unterschied zwischen Lösch- und Abschneidebefehlen?
1. Befehlstyp
delete ist ein Data Manipulation Language (DML)-Befehl und truncate ist ein Data Definition Language (DDL)-Befehl .
2. Funktion
Der Löschbefehl löscht einzelne, mehrere oder alle Datensätze aus der Tabelle gemäß der angegebenen SQL-Anweisung, während der Truncate-Befehl alle Datensätze aus der Tabelle löscht Datenbank- und Tabellenstruktur.
3. Where-Klausel
Der Löschbefehl unterstützt die WHERE-Klausel. Sie können die Where-Klausel mit DELETE verwenden, um bestimmte Datensätze zu filtern und zu löschen nicht unterstützt.
4. Sperren
Der Löschbefehl verwendet Sperren auf Zeilenebene, und jede Zeile in der Tabelle ist zum Löschen gesperrt. Sperren der gesamten Tabelle, um alle Datensätze zu löschen.
5. Indexansicht
Der Befehl „Löschen“ kann mit der Indexansicht verwendet werden, der Befehl „Truncate“ kann jedoch nicht mit der Indexansicht verwendet werden.
6. Ausführungsgeschwindigkeit
Da der Löschbefehl Protokolle verwaltet, ist die Geschwindigkeit sehr langsam. Da der Befehl truncate jedoch nur minimale Protokollierungsdatensätze im Transaktionsprotokoll verwaltet, wird er schneller ausgeführt.
7. Tabellenstruktur
Der Befehl „Löschen“ hat keinen Einfluss auf die Tabellenstruktur, während der Befehl „Truncate“ die Tabellenstruktur aus der Datenbank löscht.
8. Transaktionsspeicherplatz
Der Befehl „Löschen“ benötigt mehr Transaktionsspeicherplatz als der Befehl „Truncate“.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den SQL-Befehlen delete und truncate?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!