Verstehen Sie einfach die Unterschiede in den Prinzipien gängiger SQL-Delete-Anweisungen

Verstehen Sie einfach die Unterschiede in den Prinzipien gängiger SQL-Delete-Anweisungen

In diesem Artikel werden hauptsächlich die Unterschiede zwischen den SQL-Löschanweisungen DROP, TRUNCATE und DELETE vorgestellt, damit Sie SQL-Anweisungen besser verstehen und lernen können. Interessierte Freunde können mehr darüber erfahren.

FALLEN:

DROP TABLE-Test;

Löschen Sie die Testtabelle und geben Sie Speicherplatz frei, indem Sie alle Daten in der Testtabelle löschen.

KÜRZEN:

TRUNCATE-Test;

Löschen Sie den Inhalt der Testtabelle und geben Sie Speicherplatz frei. Löschen Sie jedoch nicht die Tabellendefinition. Die Tabellenstruktur bleibt erhalten.

LÖSCHEN:

1. Bestimmte Daten löschen

Löschen Sie in der Testtabelle die Daten, deren Alter 30 Jahre beträgt und deren Herkunftsland die USA ist

LÖSCHEN AUS Test, wobei Alter=30 UND Land='USA';

2. Löschen Sie die gesamte Tabelle

Löschen Sie den gesamten Inhalt der Testtabelle, behalten Sie die Tabellendefinition bei und geben Sie keinen Speicherplatz frei.

DELETE FROM-Test oder TRUNCATE-Test;

Der Befehl „truncate table“ löscht schnell alle Datensätze in einer Tabelle, behält aber die Tabellenstruktur bei. Dieses schnelle Löschen unterscheidet sich vom Befehl „Aus Tabelle löschen“, der alle Tabellendatensätze löscht. Die mit dem Befehl „Löschen“ gelöschten Daten werden im Rollback-Segment des Systems gespeichert. Bei Bedarf können die Daten zurückgesetzt und wiederhergestellt werden, während die mit dem Befehl „Truncate“ gelöschten Daten nicht wiederhergestellt werden können.

Ähnlichkeiten

Durch Abschneiden, Löschen ohne Where-Klausel und Löschen werden Daten in der Tabelle gelöscht.

Unterschiede:

1. Mit „Truncate and Delete“ werden nur die Daten gelöscht, nicht aber die Tabellenstruktur (Definition). Die Drop-Anweisung löscht die Constraints, Trigger und Indizes, von denen die Tabellenstruktur abhängt; die gespeicherten Prozeduren/Funktionen, die von der Tabelle abhängen, bleiben erhalten, werden aber ungültig.

2. Die Löschanweisung ist eine DML-Anweisung. Dieser Vorgang wird im Rollback-Segment platziert und wird erst wirksam, nachdem die Transaktion festgeschrieben wurde. Wenn ein entsprechender Trigger vorhanden ist, wird er bei der Ausführung ausgelöst. Truncate und Drop sind DDL-Operationen. Die Operation wird sofort wirksam. Die Originaldaten werden nicht in das Rollback-Segment eingefügt und können nicht zurückgesetzt werden. Der Vorgang löst den Trigger nicht aus.

3. Die Löschanweisung hat keinen Einfluss auf den von der Tabelle belegten Umfang und die Hochwassermarke verbleibt an ihrer ursprünglichen Position. Offensichtlich gibt die Drop-Anweisung den gesamten von der Tabelle belegten Speicherplatz frei. Standardmäßig gibt die Truncate-Anweisung Speicherplatz für Minextents-Extents frei, sofern kein wiederverwendeter Speicher verwendet wird. Truncate setzt die Obergrenze zurück (auf den Anfang).

4. Geschwindigkeit: Generell gilt: löschen > abschneiden > löschen.

5. Sicherheit: Verwenden Sie Drop und Truncate mit Vorsicht, insbesondere wenn kein Backup vorhanden ist. Sonst ist es zu spät zum Weinen.
endlich

Wenn Sie einige Datenzeilen löschen möchten, verwenden Sie „delete“ und achten Sie darauf, die Where-Klausel einzuschließen. Das Rollback-Segment muss groß genug sein.

Wenn Sie eine Tabelle löschen möchten, verwenden Sie natürlich „drop“.

Sie möchten die Tabelle behalten, aber alle Daten löschen. Wenn es nicht mit der Transaktion zusammenhängt, verwenden Sie einfach „truncate“. Wenn es sich um eine Transaktion handelt oder Sie einen Auslöser auslösen möchten, verwenden Sie „Löschen“.

Wenn Sie die Tabelle defragmentieren müssen, können Sie „truncate“ verwenden, anschließend den Speicher wiederverwenden und die Daten anschließend erneut importieren/einfügen.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Mysql, einige komplexe SQL-Anweisungen (Abfragen und Löschen doppelter Zeilen)
  • Verwenden Sie SQL-Batch-Ersetzungsanweisungen, um Feldinhalte zu ändern, hinzuzufügen und zu löschen
  • SQL-Anweisung zum Löschen doppelter Datensätze und Behalten nur eines
  • Must-Know-SQL-Anweisungen (IV) Daten löschen und aktualisieren
  • Wichtige SQL-Anweisungen (Teil 2) Tabelle erstellen, Tabellenstruktur ändern, Tabelle löschen
  • Beispielcode zum Erstellen und Löschen von Einschränkungen mithilfe von SQL-Anweisungen
  • Oracle verwendet SQL-Anweisungen zum Hinzufügen von Feldern (SQL-Anweisungen zum Löschen von Feldern).
  • SQL-Anweisung zum Batch-Löschen der angegebenen Präfixtabelle in MySQL
  • So löschen und fügen Sie Fremdschlüssel und Primärschlüssel mit SQL-Anweisungen hinzu
  • Vergleich der MySQL Delete- und Truncate-Anweisungen

<<:  Vue3 AST Parser-Quellcode-Analyse

>>:  Lösung für die langsame Reaktion des Tomcat-Servers

Artikel empfehlen

Detaillierte Erklärung des Unterschieds zwischen Docker-Compose-Ports und Expose

Es gibt zwei Möglichkeiten, Container-Ports in Do...

HTML-Grundlagen - Pflichtlektüre - Umfassendes Verständnis von CSS-Stylesheets

CSS (Cascading Style Sheet) wird zum Verschönern ...

React-Implementierungsbeispiel mit Amap (react-amap)

Die PC-Version von React wurde für die Verwendung...

Implementierung der kontinuierlichen Integration von Jenkins+Docker

Inhaltsverzeichnis 1. Einführung in Jenkins 2. Je...

React verwendet Emotionen zum Schreiben von CSS-Code

Inhaltsverzeichnis Einführung: Installation von E...

Ist MySQL eine relationale Datenbank?

MySQL ist ein relationales Datenbankverwaltungssy...

Implementierungsmethode für HTML-Neun-Raster-Layouts

Die Diversifizierung von Website-Layouts ist unse...

Datagrip2020 kann MySQL-Treiber nicht herunterladen

Wenn Sie es nicht durch direktes Klicken auf „Dow...

Umfassender Vergleich und Bewertung des Vue-Code-Hervorhebungs-Plugins

Inhaltsverzeichnis Umfassender Vergleich Aus der ...