Weiter Zurück [Inhalt] Online Suche im Handbuch

31.6 Laden von Daten in die Tabelle

Nachdem nun die Tabelle angelegt wurde, sollte wir sie bevölkern. Die Befehle LOAD DATA und INSERT kommen zur Anwendung. Zuvor sollten Sie eventuell im Kapitel LOAD DATA sich über die Eigenheiten mit Sonderzeichen in den ASCII Dateien informieren.

Angenommen, daß die tier Einträge folgendermaßen aussehen sollen. Man beachte das Format des Datums hier im Beispiel:

name            besitzer        spezies         geschlecht      geboren         gestorben
Fluffy          Harold          cat             w               1993-02-04 
claws           Gwen            cat             m               1994-03-17 
Buffy           Harold          dog             w               1989-05-13 
Diane           Gwen            dog             m               1998-08-31      1995-07-29 

Da wir mit einer leeren Tabelle arbeiten, sind viele Dinge einfacher. Legen wir also eine Textdatenbank als tier.txt an. Dies kann mit einem einfachen Editor erfolgen, z.B. dem Notepad (Bäh!) oder mit joe unter UNIX (LINUX).

Man sollte beachten, daß für fehlende Einträge diese auf NULL gesetzt werden müssen. Dies findet sich in der ASCII - Datei als \N wieder:

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

Sie können noch obige Einträge in der ASCII Datei anfügen, bevor wir diese dann in die Datenbank einlesen:

mysql> LOAD DATA LOCAL INFILE "tier.txt" INTO TABLE tier;

Oops, was soll die OPTION LOCAL hier ? Die Option LOCAL gibt an, daß sich die ASCII Datei tier.txt auf Ihrer Arbeitsstation befinden muß, und zwar in dem Verzeichnis, von welchem aus der Client gestartet wurde. Sie könne aber auch absolute Pfadangaben machen. Die Datei tier.txt wird ggf. über das Netzwerk auf den Server übertragen. Also Vorsicht bei großen Dateien (Siehe --compress Option beim Client)

Wir möchten nun einige Einträge hinzufügen, ohne den Editor und das Kommando LOAD DATA INFILE zu verwenden. Hierzu können wir im Client den Befehl INSERT INTO verwenden. Siehe auch Kapitel INSERT:

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

Unser Hamster lebt also noch. Für Hamsterfreunde siehe auch http://www.little-idiot.de/hamster/. Für Freunde von Kühen siehe auch http://www.little-idiot.de/bse/

Man sollte stets beachten, daß die Tiere in Anführungszeichen stehen müssen, und Leerfelder mit einem \N gekennzeichnet werden müssen, jedenfalls bei dem Befehl LOAD DATA INFILE. Bei dem Befehl INSERT ist die Syntax anders. Hier muß für ein leeres Feld NULL eingegeben werden.

Man sieht, daß das Laden aus einer ASCII-Datei mit weniger Tipparbeit verbunden ist, als der direkte Einsatz des Befehls INSERT INTO ...


Weiter Zurück [Inhalt] Online Suche im Handbuch