Einige MySQL-Tabellen können doppelte Datensätze enthalten. In manchen Fällen lassen wir die Existenz doppelter Daten zu, manchmal müssen wir die doppelten Daten aber auch löschen. In diesem Kapitel erfahren Sie, wie Sie das Auftreten doppelter Daten in Datentabellen verhindern und wie Sie doppelte Daten in Datentabellen löschen. Verhindern, dass doppelte Daten in der Tabelle erscheinen Sie können ein bestimmtes Feld in einer MySQL-Tabelle als PRIMARY KEY- oder UNIQUE-Index festlegen, um die Eindeutigkeit der Daten sicherzustellen. CREATE TABLE person_tbl ( vorname CHAR(20), Nachname CHAR(20), Geschlecht CHAR(10) ); Wenn Sie die Daten der Felder „Vorname“ und „Nachname“ in der Tabelle so einstellen möchten, dass sie nicht wiederholt werden, können Sie einen dualen Primärschlüsselmodus festlegen, um die Eindeutigkeit der Daten festzulegen. Wenn Sie einen dualen Primärschlüssel festlegen, kann der Standardwert dieses Schlüssels nicht NULL sein und kann auf NOT NULL festgelegt werden. Wie unten dargestellt: CREATE TABLE person_tbl ( Vorname CHAR(20) NOT NULL, Nachname CHAR(20) NOT NULL, Geschlecht CHAR(10), PRIMÄRSCHLÜSSEL (Nachname, Vorname) ); Wenn wir einen eindeutigen Index festlegen, wird die SQL-Anweisung beim Einfügen doppelter Daten nicht erfolgreich ausgeführt und ein Fehler wird ausgegeben. Der Unterschied zwischen INSERT IGNORE INTO und INSERT INTO besteht darin, dass INSERT IGNORE die Daten ignoriert, die bereits in der Datenbank vorhanden sind. Wenn keine Daten in der Datenbank vorhanden sind, werden neue Daten eingefügt. Wenn Daten vorhanden sind, werden die Daten übersprungen. Auf diese Weise können die vorhandenen Daten in der Datenbank beibehalten und der Zweck des Einfügens von Daten in die Lücke erreicht werden. Im folgenden Beispiel wird INSERT IGNORE INTO verwendet. Nach der Ausführung tritt kein Fehler auf und es werden keine doppelten Daten in die Datentabelle eingefügt: mysql> INSERT IGNORE INTO person_tbl (Nachname, Vorname) -> WERTE('Jay', 'Thomas'); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> INSERT IGNORE INTO person_tbl (Nachname, Vorname) -> WERTE('Jay', 'Thomas'); Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) INSERT IGNORE INTO: Wenn beim Einfügen von Daten nach dem Festlegen der Eindeutigkeit des Datensatzes doppelte Daten eingefügt werden, wird kein Fehler zurückgegeben, sondern nur eine Warnung. Wenn REPLACE INTO einen Datensatz mit demselben primären oder eindeutigen Wert hat, wird dieser zuerst gelöscht. Neue Datensätze erneut einfügen. Eine weitere Möglichkeit, die Eindeutigkeit Ihrer Daten sicherzustellen, besteht darin, einen UNIQUE-Index hinzuzufügen, wie unten gezeigt: CREATE TABLE person_tbl ( Vorname CHAR(20) NOT NULL, Nachname CHAR(20) NOT NULL, Geschlecht CHAR(10), UNIQUE (Nachname, Vorname) ); Zählen doppelter Daten Nachfolgend zählen wir die Anzahl der doppelten Datensätze von Vorname und Nachname in der Tabelle: mysql> SELECT COUNT(*) als Wiederholungen, Nachname, Vorname -> VON person_tbl -> GRUPPE NACH Nachname, Vorname -> MIT Wiederholungen > 1; Die obige Abfrage gibt die Anzahl der doppelten Datensätze in der Tabelle „person_tbl“ zurück. Um nach doppelten Werten zu suchen, gehen Sie im Allgemeinen wie folgt vor:
Filtern doppelter Daten Wenn Sie keine doppelten Daten lesen müssen, können Sie das Schlüsselwort DISTINCT in der SELECT-Anweisung verwenden, um doppelte Daten herauszufiltern. mysql> SELECT DISTINCT Nachname, Vorname -> VON person_tbl; Sie können GROUP BY auch verwenden, um eindeutige Daten in der Tabelle zu lesen: mysql> SELECT Nachname, Vorname -> VON person_tbl -> GROUP BY (Nachname, Vorname); Deduplizierung Wenn Sie doppelte Daten in einer Tabelle löschen möchten, können Sie die folgende SQL-Anweisung verwenden: mysql> CREATE TABLE tmp SELECT Nachname, Vorname, Geschlecht FROM person_tbl GROUP BY (Nachname, Vorname, Geschlecht); mysql> DROP TABLE person_tbl; mysql> ALTER TABLE tmp RENAME TO person_tbl; Natürlich können Sie auch INDEX (Index) und PRIMAY KEY (Primärschlüssel) in die Datentabelle einfügen, um doppelte Datensätze in der Tabelle zu löschen. So geht's: mysql> ALTER IGNORE TABLE person_tbl -> PRIMÄRSCHLÜSSEL HINZUFÜGEN (Nachname, Vorname); Oben sind die Details der MySQL-Methode zum Umgang mit doppelten Daten (Verhinderung und Löschung) aufgeführt. Weitere Informationen zum Umgang von MySQL mit doppelten Daten finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: So zeigen Sie alle laufenden Prozesse in Linux an
>>: So verwenden Sie den Yum-Befehl
1. Docker-Installation und -Start yum installiere...
In diesem Artikelbeispiel wird der spezifische Co...
MySql 8.0 entsprechendes Treiberpaket passend Nac...
· 【Szenenbeschreibung】 Nach HTTP1.1 unterstützt d...
In diesem Artikel wird der spezifische Code von j...
Da myeclipse2017 und idea2017 auf dem Computer in...
Finden Sie das Problem Heute werde ich den Tomcat...
<> Operator Funktion: Zeigt an, dass es ung...
Gemeinsame Eigenschaften von Tabellen Die grundle...
Inhaltsverzeichnis 1. Hintergrund 2. Was ist ein ...
Inhaltsverzeichnis Problembeschreibung Methode 1 ...
Inhaltsverzeichnis Vorwort 1. NJS-Modul installie...
Da das Projekt einen Fragebogen erfordert, der Kun...
Zuvor wurde unter https://www.jb51.net/article/20...
Inhaltsverzeichnis Schreiben Sie docker-compose.y...