Die Arbeit mit Datenbanken ist ein unverzichtbarer Bestandteil der Entwicklung von Webanwendungen. Eine wichtige Operation besteht darin, Tabellen von Daten zu bereinigen. In diesem Artikel werden wir uns 5 einfache Möglichkeiten zum Bereinigen einer Tabelle in MySQL ansehen.
Der erste Weg besteht darin, den Befehl DELETE zu verwenden. Dies ist der einfachste Weg, um alle Zeilen aus einer Tabelle zu entfernen. Führen Sie dazu die folgende Abfrage aus: DELETE FROM table_name;. Es ist wichtig zu beachten, dass alle Daten nach dem Ausführen dieses Befehls dauerhaft gelöscht werden.
Die zweite Methode ist die Verwendung des Befehls TRUNCATE TABLE. Dieser Befehl löscht alle Zeilen aus der Tabelle und stellt den Autoincrement-Zähler wieder her. Wenn Sie die Tabelle schnell löschen und das Autoincrement zurücksetzen müssen, ist dies der bequemste Weg. Führen Sie dazu die folgende Abfrage aus: TRUNCATE TABLE table_name;.
Die dritte Methode ist die Verwendung einer temporären Tabelle. Sie können eine neue temporäre Tabelle erstellen, die erforderlichen Daten in die Tabelle kopieren und dann die ursprüngliche Tabelle löschen. Dazu müssen Sie die folgenden Abfragen ausführen:
CREATE TABLE temp_table_name SELECT * FROM table_name;
DELETE FROM table_name;
ALTER TABLE temp_table_name RENAME TO table_name;
Die vierte Methode ist die Verwendung des Operators DROP TABLE und CREATE TABLE. Sie können die ursprüngliche Tabelle löschen und dann eine neue leere Tabelle mit demselben Namen erstellen. Dazu müssen Sie die folgenden Abfragen ausführen:
Die fünfte Methode ist die Verwendung von Datenbankverwaltungstools wie phpMyAdmin oder MySQL Workbench. Diese Tools bieten eine grafische Oberfläche, mit der Sie Tabellen leicht bereinigen und andere Datenbankoperationen durchführen können.
Jetzt haben Sie 5 einfache Möglichkeiten, eine Tabelle in MySQL zu bereinigen. Wählen Sie die für Ihre Aufgabe am besten geeignete aus und entwickeln Sie weiterhin Webanwendungen!
Der erste Weg: alle Zeilen löschen
DELETE FROM название_таблицы;
Hier tabellenname ist der Name der Tabelle, aus der alle Zeilen gelöscht werden sollen.
Es ist wichtig zu beachten, dass das Ausführen dieser SQL-Abfrage ohne Vorsicht zum Verlust aller Tabellendaten führen kann. Daher sollten Sie vor dem Löschen aller Zeilen eine Sicherungskopie der Daten erstellen oder sicherstellen, dass eine solche Aktion erforderlich ist.
Die zweite Methode ist, die Tabelle mit TRUNCATE zu bereinigen
Führen Sie den folgenden Befehl aus, um eine Tabelle mit der TRUNCATE-Anweisung zu löschen:
TRUNCATE TABLE table_name;
Hier ist table_name der Name der zu bereinigenden Tabelle.
Die TRUNCATE-Anweisung ist viel schneller als die DELETE-Anweisung, da sie nicht jede gelöschte Zeile in das Transaktionsprotokoll schreibt, sondern Speicherplatz in der Tabelle freigibt, ohne die Bullen zu reparieren.
Beachten Sie jedoch, dass der TRUNCATE-Operator und der DELETE-Operator bei der Übertragung von Zugriffsrechten auf andere Tabellen unterschiedlich funktionieren. Wenn Sie TRUNCATE verwenden, werden alle Zugriffsrechte für die Tabelle zurückgesetzt, während die DELETE-Anweisung die Zugriffsrechte behält.
Die Verwendung des TRUNCATE-Operators ist praktisch, wenn Sie eine Tabelle schnell löschen müssen und es Ihnen egal ist, ob Sie die Struktur oder die Zugriffsrechte beibehalten möchten.
Erstellen einer temporären Tabelle mit kopierten Daten
Wenn Sie eine Tabelle in MySQL löschen müssen, aber dennoch ihre Struktur und Daten beibehalten müssen, können Sie die Methode zum Erstellen einer temporären Tabelle mit dem Kopieren der Daten verwenden.
Zunächst können Sie die folgende SQL-Abfrage verwenden:
CREATE TEMPORARY TABLE временная_таблица ASSELECT *FROM исходная_таблица;
In diesem Fall ist "temporäre Tabelle" der Name der temporären Tabelle, die Sie erstellen, und "Quelltabelle" ist der Name der Tabelle, deren Daten Sie kopieren möchten.
Nachdem Sie eine temporäre Tabelle erstellt haben, können Sie die Daten aus der ursprünglichen Tabelle mithilfe der anderen im Artikel beschriebenen Methoden löschen und dann die Daten aus der temporären Tabelle wieder in die ursprüngliche Tabelle wiederherstellen.
Verwenden Sie die folgende SQL-Abfrage, um die Daten wiederherzustellen:
INSERT INTO исходная_таблицаSELECT *FROM временная_таблица;
Nachdem Sie diese Abfrage ausgeführt haben, werden die Daten aus der temporären Tabelle zurück in die ursprüngliche Tabelle kopiert.
Das Erstellen einer temporären Tabelle mit kopierten Daten ermöglicht es daher, die Tabelle zu bereinigen, während ihre Struktur und Daten beibehalten werden. Dies ist praktisch, wenn Sie Operationen an Daten in einer separaten Tabelle durchführen und die Ergebnisse dann an die ursprüngliche Tabelle zurückgeben müssen.
Verwenden von DELETE mit WHERE
In MySQL wird die DELETE-Anweisung verwendet, um Datensätze aus einer Tabelle zu löschen. Wenn Sie jedoch eine große Tabelle mit vielen Daten haben und nur bestimmte Zeilen löschen möchten, wird die Verwendung der WHERE-Anweisung äußerst nützlich.
Mit der WHERE-Bedingung können Sie eine Bedingung angeben, um bestimmte Zeilen aus einer Tabelle zu entfernen. Sie können beispielsweise alle Zeilen löschen, wobei der Wert in der Spalte Name gleich Alexander ist.
Beispiel für die Verwendung von DELETE mit WHERE:
DELETE FROM таблицаWHERE условие;
Um beispielsweise alle Zeilen mit dem Namen "Alexander" aus der Tabelle "Benutzer" zu entfernen, können Sie die folgende Abfrage ausführen:
DELETE FROM пользователиWHERE имя = 'Александр';
Solche Abfragen können sehr nützlich sein, wenn Sie nur bestimmte Datensätze aus einer großen Tabelle entfernen müssen. Sie helfen Ihnen, die Datenmenge zu reduzieren und die Leistung Ihrer Datenbank zu verbessern.
Bereinigen einer Tabelle mit DROP und CREATE
Der Prozess zum Bereinigen einer Tabelle mit DROP und CREATE besteht aus den folgenden Schritten:
- Erstellen Sie bei Bedarf eine Sicherungskopie der Tabelle
- Löschen Sie die Tabelle mit der DROP-Anweisung
- Erstellen Sie eine neue Tabelle mit der CREATE-Anweisung mit demselben Namen und derselben Struktur
Beispielcode zum Löschen einer Tabelle mit DROP und CREATE:
-- Создание резервной копии таблицыCREATE TABLE table_backup AS SELECT * FROM table;-- Удаление таблицыDROP TABLE table;-- Создание новой таблицыCREATE TABLE table (column1 INT,column2 VARCHAR(255). );
Beachten Sie, dass bei Verwendung dieser Methode alle Daten in der Tabelle gelöscht werden, ohne dass sie wiederhergestellt werden können. Daher müssen Sie vor dem Ausführen dieses Vorgangs sicherstellen, dass alle erforderlichen Daten an einem anderen Ort gespeichert sind.
Beachten Sie auch, dass sich die Verwendung von DROP und CREATE auf andere Datenbankobjekte auswirken kann, die von dieser Tabelle abhängen, z. B. Ansichten oder gespeicherte Prozeduren. Daher ist es wichtig, bei der Verwendung dieser Methode vorsichtig zu sein und die Abhängigkeiten vorher zu überprüfen.
Verwenden von TRUNCATE
Sie können den TRUNCATE-Operator verwenden, um eine Tabelle in MySQL zu bereinigen. Diese Anweisung löscht alle Zeilen aus der Tabelle und setzt den Autoincrement-Wert auf den Anfangswert zurück. Im Gegensatz zur DELETE-Anweisung, die Zeilen nacheinander löscht, führt die TRUNCATE-Anweisung einen Löschvorgang in einem Durchlauf durch, wodurch sie effizienter wird.
Um den TRUNCATE-Operator zu verwenden, müssen Sie die folgende Syntax verwenden:
TRUNCATE TABLE table_name;
Dabei ist table_name der Name der zu bereinigenden Tabelle.
Wenn wir beispielsweise eine Tabelle mit dem Namen "users" haben, müssen Sie die folgende Abfrage ausführen, um sie zu löschen:
TRUNCATE TABLE users;
Wenn diese Abfrage ausgeführt wird, werden alle Daten in der Tabelle "Benutzer" gelöscht und der Autoincrement-Wert wird zurückgesetzt.
Die dritte Methode besteht darin, eine Teilmenge der Zeilen mithilfe einer Bedingung zu löschen
In MySQL können Sie nur Zeilen löschen, die einer bestimmten Bedingung entsprechen. Dazu wird das Schlüsselwort verwendet WHERE im Operator DELETE.
Die Syntax zum Löschen von Zeilen unter Verwendung einer Bedingung lautet wie folgt:
DELETE FROM Tabellenname WHERE Bedingung;
- tabellenname - Der Name der Tabelle, aus der Zeilen gelöscht werden sollen;
- eine Bedingung ist eine Bedingung, die Zeilen erfüllen müssen, um gelöscht zu werden.
Wenn wir beispielsweise alle Zeilen aus der Tabelle "users" entfernen möchten, wobei das Feld "age" kleiner als 18 ist, sieht die Abfrage folgendermaßen aus:
DELETE FROM users WHERE age < 18;
Eine solche Abfrage löscht alle Zeilen, die die Bedingung erfüllen, und belässt nur die Zeilen, in denen der Wert des Felds "age" größer oder gleich 18 ist.
Wenn Sie eine Bedingung in einer DELETE-Anweisung verwenden, müssen Sie darauf achten, dass Sie nicht versehentlich mehr Zeilen als erforderlich löschen. Daher wird empfohlen, diese Abfrage zuerst mit einer SELECT-Anweisung auszuführen, um sicherzustellen, dass die ausgewählten Zeilen die angegebenen Bedingungen erfüllen, bevor Sie eine solche Abfrage ausführen.
Vierte Methode: Löschen mithilfe der Schlüsselspalte
Um alle Daten mithilfe der Schlüsselspalte zu löschen, können wir die folgende SQL-Syntax einer Abfrage verwenden:
DELETE FROM table_name;
Hier table_name ist der Name der Tabelle, aus der Daten gelöscht werden sollen.
Diese Abfrage löscht alle Zeilen aus der Tabelle, sodass nur die Tabellenstruktur ohne Daten bleibt. Bevor Sie diese Abfrage ausführen, sollten Sie jedoch sicherstellen, dass unsere Schlüsselspalte (normalerweise eine Spalte mit dem Attribut PRIMARY KEY) tatsächlich eindeutige Werte für jede Zeile enthält.
Die Verwendung einer Schlüsselspalte zum Löschen von Daten kann nützlich sein, wenn wir eine Tabelle vollständig bereinigen möchten, aber dennoch ihre Struktur und Einstellungen beibehalten möchten.
Sie sollten jedoch bei der Verwendung dieser Methode vorsichtig sein, da Sie keinen Rollback des Löschvorgangs vorsieht und die Daten dauerhaft gelöscht werden.