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

Implementierung von JavaScript zum Herunterladen und Hochladen verknüpfter Bilder

Da wir Bilder hochladen möchten, müssen wir zunäc...

Front-End-Statusverwaltung (Teil 1)

Inhaltsverzeichnis 1. Was ist Front-End-Statusver...

So verwenden Sie html2canvas, um HTML-Code in Bilder umzuwandeln

Konvertieren Sie Code in ein Bild mit html2canvas...

Zusammenfassung der verschiedenen Verwendungsmöglichkeiten von JSON.stringify

Vorwort Jeder, der schon einmal JSON verwendet ha...

Bootstrap+Jquery zum Erreichen eines Kalendereffekts

In diesem Artikel wird der spezifische Code von B...

Detaillierte Erklärung des Unterschieds zwischen Uniapp und Vue

Inhaltsverzeichnis 1. Einfaches Seitenbeispiel 2....