MySQL :: MySQL 5.7 Referenzhandbuch :: 3.3.3 Laden von Daten in eine Tabelle

3.3.3 Laden von Daten in eine Tabelle

Nachdem Sie Ihre Tabelle erstellt haben, müssen Sie sie füllen. Die LOAD DATA und INSERT Anweisungen sind hierfür nützlich.

Angenommen, Ihre Haustierdatensätze können wie hier gezeigt beschrieben werden. (Beachten Sie, dass MySQL Daten im 'YYYY-MM-DD' -Format erwartet; Dies kann von dem abweichen, was Sie gewohnt sind.)

name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane Hund m 1979-08-31 1995-07-29
Zwitschern Gwen Vogel f 1998-09-11
Whistler Gwen Vogel 1997-12-09
Schlank Benny Schlange m 1996-04-29

Da Sie mit einer leeren Tabelle beginnen, besteht eine einfache Möglichkeit, sie zu füllen, darin, eine Textdatei zu erstellen, die für jede Ihrer Tabellen eine Zeile enthält laden Sie dann den Inhalt der Datei mit einer einzigen Anweisung in die Tabelle.

Sie könnten eine Textdatei pet.txt erstellen, die einen Datensatz pro Zeile enthält, wobei die Werte durch Tabulatoren getrennt sind und in der Reihenfolge angegeben werden, in der die Spalten in der Anweisung CREATE TABLE aufgeführt wurden. Für fehlende Werte (z. B. unbekanntes Geschlecht oder Todesdatum für noch lebende Tiere) können Sie NULL -Werte verwenden. Um diese in Ihrer Textdatei darzustellen, verwenden Sie \N (Backslash, Großbuchstaben-N). Zum Beispiel würde der Datensatz für Whistler the bird folgendermaßen aussehen (wobei der Leerraum zwischen den Werten ein einzelnes Tabulatorzeichen ist):

Whistler Gwen bird \N 1997-12-09 \N

Um die Textdatei pet.txt in die pet -Tabelle zu laden, verwenden Sie diese Anweisung:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

Wenn Sie die Datei unter Windows mit einem Editor erstellt haben, der \r\n als Zeilenabschluss verwendet, sollten Sie stattdessen diese Anweisung verwenden:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';

(Auf einem Apple-Computer mit macOS möchten Sie wahrscheinlich LINES TERMINATED BY '\r'.)

Sie können das Spaltentrennzeichen und die Zeilenende-Markierung explizit in der LOAD DATA -Anweisung angeben, wenn Sie möchten, aber die Standardwerte sind Tabulator und Zeilenvorschub. Diese sind ausreichend, damit die Anweisung die Datei pet.txt richtig liest.

Wenn die Anweisung fehlschlägt, ist es wahrscheinlich, dass in Ihrer MySQL-Installation die lokale Dateifunktion nicht standardmäßig aktiviert ist. Informationen dazu, wie Sie dies ändern können, finden Sie in Abschnitt 6.1.6, „Sicherheitshinweise für LOAD DATA LOCAL“.

Wenn Sie nacheinander neue Datensätze hinzufügen möchten, ist die Anweisung INSERT nützlich. In der einfachsten Form geben Sie Werte für jede Spalte in der Reihenfolge an, in der die Spalten in der Anweisung CREATE TABLE aufgeführt wurden. Angenommen, Diane bekommt einen neuen Hamster namens „Puffball.“ Sie könnten einen neuen Datensatz mit einer INSERT Anweisung wie folgt hinzufügen:

mysql> INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

String- und Datumswerte werden hier als Anführungszeichen angegeben. Außerdem können Sie mit INSERTNULL direkt einfügen, um einen fehlenden Wert darzustellen. Sie verwenden \N nicht wie LOAD DATA .

In diesem Beispiel sollten Sie sehen können, dass viel mehr Eingabe erforderlich ist, um Ihre Datensätze zunächst mit mehreren INSERT -Anweisungen als mit einer einzelnen LOAD DATA -Anweisung zu laden.