Nachdem Sie Ihre Tabelle erstellt haben, müssen Sie sie mit
Daten füllen. Zu diesem Zweck sind die Anweisungen
LOAD DATA
und INSERT
vorhanden.
Nehmen wir einmal an, dass sich die Angaben zu Ihren Haustieren
wie in der folgenden Tabelle gezeigt zusammenfassen lassen
(beachten Sie dabei, dass MySQL Datumsangaben im Format
'YYYY-MM-DD'
erwartet; dies unterscheidet
sich unter Umständen von dem Format, mit dem Sie vertraut
sind).
name | besitzer | gattung | geschlecht | geburtstag | todestag |
Fluffy | Harold | Katze | w | 1993-02-04 | |
Claws | Gwen | Katze | m | 1994-03-17 | |
Buffy | Harold | Hund | w | 1989-05-13 | |
Fang | Benny | Hund | m | 1990-08-27 | |
Bowser | Diane | Hund | m | 1979-08-31 | 1995-07-29 |
Chirpy | Gwen | Vogel | w | 1998-09-11 | |
Whistler | Gwen | Vogel | 1997-12-09 | ||
Slim | Benny | Schlange | m | 1996-04-29 |
Da wir anfangs eine leere Tabelle haben, können Sie diese zunächst ganz einfach ausfüllen, indem Sie eine Textdatei erstellen, die jeweils eine Zeile pro Tier enthält. Die Inhalte der Datei können Sie dann mit einer einzigen Anweisung in die Tabelle einladen.
Erstellen Sie also eine Textdatei namens
pet.txt
mit einem Datensatz pro Zeile, bei
dem die einzelnen Werte durch Tabulatorzeichen voneinander
getrennt sind; die Werte müssen dabei in der Reihenfolge
eingegeben werden, in der Sie in der CREATE
TABLE
-Anweisung aufgeführt wurden. Bei fehlenden
Werten (z. B. wenn das Geschlecht nicht bekannt oder das Ableben
des Tieres noch nicht erfolgt ist) können Sie
NULL
-Werte eingeben. Diese geben Sie als
\N
(Backslash, großes N) in Ihre Textdatei
ein. So würde der Datensatz für Whistler, den Vogel, wie folgt
aussehen (der Whitespace zwischen den Werten ist ein
Tabulatorzeichen):
name | besitzer | gattung | geschlecht | geburtstag | todestag |
Whistler |
Gwen |
Vogel |
\N |
1997-12-09 |
\N |
Um die Textdatei pet.txt
in die Tabelle
haustier
zu laden, genügt die folgende
Anweisung:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE haustier;
Beachten Sie, dass Sie, wenn Sie die Datei unter Windows mit
einem Editor erstellt haben, der \r\n
als
Zeilenbegrenzer verwendet, Folgendes verwenden:
mysql>LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE haustier
->LINES TERMINATED BY '\r\n';
(Auf einem Apple Macintosh unter Mac OS X würden Sie hingegen
eher LINES TERMINATED BY '\r'
benutzen.)
Sie können das Trennzeichen für Spaltenwerte und den
Zeilenbegrenzer bei Bedarf auch ausdrücklich in der
LOAD DATA
-Anweisung angeben, die
Standardeinstellungen sind jedoch das Tabulator- bzw. das
Zeilenvorschubzeichen. Diese Einstellungen sind zum Einlesen
unserer Datei pet.txt
geeignet.
Schlägt die Anweisung fehl, dann liegt das wahrscheinlich
daran, dass bei der MySQL-Installation standardmäßig nicht die
Funktionalität für lokale Dateien aktiviert ist. Wie Sie dies
ändern, erfahren Sie in Abschnitt 5.7.4, „Sicherheitsprobleme mit LOAD DATA LOCAL
“.
Zum sukzessiven Einfügen neuer Datensätze ist die
INSERT
-Anweisung am praktischsten. In ihrer
einfachsten Form geben Sie Werte für jede Spalte in der
Reihenfolge an, in der die Spalten in der CREATE
TABLE
-Anweisung aufgeführt waren. Nehmen wir etwa an,
Diane bekommt einen neuen Hamster namens
„Puffball“. Nun könnten Sie den erforderlichen
neuen Datensatz wie folgt mithilfe einer
INSERT
-Anweisung angeben:
mysql>INSERT INTO haustier
->VALUES ('Puffball','Diane','Hamster','w','1999-03-30',NULL);
Beachten Sie, dass die String- und Datenwerte hier in
Anführungszeichen gesetzt werden. Mit der
INSERT
-Anweisung können Sie
NULL
auch direkt eingeben, um einen fehlenden
Wert darzustellen. \N
würden Sie hier –
anders als bei LOAD DATA
– nicht verwenden.
Aus diesem Beispiel sollte klar werden, dass die Erstellung der
Basisdatensätze mithilfe einzelner
INSERT
-Anweisungen erheblich mehr Tipparbeit
bedeuten würde als die Verwendung einer einzelnen LOAD
DATA
-Anweisung.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.