MySQL Load Data-Lernprogramm

August 16

MySQL verwendet die "Einfügen" und "LOAD DATA" Anweisungen zum Einfügen von Datensätzen in einer Datenbanktabelle. Die Anweisung "INSERT" lädt ein Datensatz zu einem Zeitpunkt während der "LOAD DATA"-Statement Daten aus einer externen Textdatei importiert. Die "Daten laden"-Anweisung liest rasch die Textdatei zeilenweise, wodurch es viel schneller, als ein "INSERT", wenn Sie mehrere Datensätze auf einmal laden.

Die Textdatei erstellen

Jede Zeile der Textdatei muss ein Datensatz (Zeile) in der Tabelle entsprechen. Die Werte für jede Spalte sollten durch einen Tabulator getrennt werden und Nullwerte (fehlenden) müssen durch die Bezeichnung "\N" vertreten sein.

Beispielsweise haben Sie eine Tabelle mit Adressen mit den Spaltennamen wird Fname, Lname, Staddress, Zip, würde Sie einrichten die folgende Textdatei und speichern Sie es als "addresses.txt"

Kris Miller 301 überall St 17598Steve Fetterhoff 305 St. anderswo Ave 17989James Smith 623 Kensington Ct 98539

Die Datei muss mit den Spalten in der gleichen Position, wie sie in der Tabelle sind. Wenn Sie das Spaltenlayout unsicher sind, können Sie den Befehl "DESCRIBE Tabellenname;" eingeben. Ersetzen Sie "Tablename" durch den Namen der Tabelle.

Laden der Daten

Um die Daten in die Tabelle zu laden, musst du zuerst mit dem MySQL-Server verbinden, und wählen die richtige Datenbank. Sobald Sie erreichen die "Mysql >" Prompt, Sie werden den folgenden Befehl eingeben:

LOAD DATA LOCAL INFILE ' / home/user/address.txt' INTO TABLE-AdresseGEHEN

Der genaue Pfad zu der Datei muss angegeben werden, nach dem Wort "INFILE" und in einfache Anführungszeichen eingeschlossen werden. Das obige Beispiel zeigt einen Linux/Unix-Pfad, der Pfad für eine Windows-Maschine wäre so etwas wie "C:\Documents und Settings\user\address.txt.\" auch, wenn die Datei von einem Windows-Texteditor erstellt wurde, Sie sollten angeben das Zeilenabschlusszeichen \r\n im LOAD DATA-Befehl mit der folgenden Syntax:

LOAD DATA LOCAL INFILE ' / home/user/address.txt' INTO TABLE Adresse LINES TERMINATED BY '\r\n'GEHEN

Einmal die \"mysql > \" Eingabeaufforderung zurückgibt, können Sie überprüfen, ob Ihre Daten mit der folgenden Abfrage korrekt geladen wurde:

Wählen Sie * von AdresseGEHEN

Diese Abfrage gibt zurück, mit den vollständigen Datensatz legen Sie für die \"address\" Tabelle formatiert in Zeilen und Spalten.

Daten-Ladeoptionen

Die LOAD DATA-Anweisung hat einige Optionen, mit denen Sie ein alternatives Format für Ihre Textdatei verwenden und das Importieren von Daten zu behandeln. Im Beispiel oben, verwendet die \"LOCAL\" Option. Diese Option sagt, auf dem Clientcomputer für die Datei zu suchen. Wenn Sie eine Verbindung zu einem entfernten MySQL-Server ohne die \"LOCAL\" Option, die Datei muss auf dem MySQL-Server gespeichert werden und wird direkt vom Server gelesen werden.

Option "Ersetzen", sagt die Zeilen mit den gleichen Primärschlüssel wie die Zeile in der Datei zu ersetzen. Ein Primärschlüssel ist der Wert, der jeden Datensatz in einer Tabelle eindeutig identifiziert. Die Option "Ignorieren", sagt Zeilen überspringen, die eine vorhandene Zeile, basierend auf den Primärschlüssel zu duplizieren. Diese beiden Optionen sind nach den Namen der Datei und vor dem Wort "INTO" wie gekennzeichnet:

LOAD DATA LOCAL INFILE ' / home/user/address.txt' INTO TABLE ersetzen-AdresseGEHEN

Sie können auch angeben, dass die Felder durch ein anderes Zeichen als eine Registerkarte, z. B. eine durch Kommas getrennte Werte (CSV) Datei, mit der Option "FIELDS TERMINATED BY" getrennt werden. Diese Option ist nach den Namen der Tabelle mit der folgenden Syntax angegeben:

LOAD DATA LOCAL INFILE ' / home/user/address.txt 'INTO TABLE ersetzen Adresse FIELDS TERMINATED BY','GEHEN

Finden Sie weitere Optionen, die von der "LOAD INTO"-Anweisung in der MySQL-Benutzer-Dokumentation verwendet werden können (siehe Ressourcen).