Eine CSV Datei in eine MySQL Datenbank importieren

Neulich wollte ich eine CSV Datei in eine kleine MySQL Datenbank einfügen. Doch wie war das doch gleich? Die CSV Datei hatte 5 Spalten und entspechend viele Elemente. Im Editor sieht soetwas ungefähr so aus.

CSV Datei:

text1,text2,text3,text4,text5
text2,text3,text4,text5,text6

Damit die MySQL Datenbank auch etwas mit den Daten anfangen kann, muss einmal eine Datenbank bestehen, wo die Daten hinein geladen werden sollen. Weiter müssen die Tabellen in der Datenbank eingerichtet sein. Die Datenbank heißt in diesem Fall iplist. Die Tabelle habe ich auch iplist genannt. Der Anwender erkennt das leicht anhand des Punkt-Operators iplist.iplist unten in der Erzeugung der Tabellen. Nungut, die Tabellen habe ich wie unten gezeigt erzeugt. Der Datentyp VARCHAR sollte bekannt sein, die Programmierer denken an dieser Stelle gerne an einen String. In Klammern ist die Größe, bzw. die maximale Länge definiert. Details zum Rest gibt es in der MySQL Doku.

CREATE TABLE `iplist`.`iplist` (
`eins` VARCHAR( 15 )
CHARACTER SET latin1
COLLATE latin1_german1_ci NOT NULL ,

`zwei` VARCHAR( 27 )
CHARACTER SET latin1
COLLATE latin1_german1_ci NOT NULL ,

`drei` VARCHAR( 2 )
CHARACTER SET latin1
COLLATE latin1_german1_ci NOT NULL ,

`vier` VARCHAR( 50 )
CHARACTER SET latin1
COLLATE latin1_german1_ci NOT NULL ,

`fuenf` VARCHAR( 2 )
CHARACTER SET latin1
COLLATE latin1_german1_ci NOT NULL
) ENGINE = MYISAM ;

So, die Tabellen sind erzeugt und nun kann entsprechend die CSV Datei geladen werden. Das wird wie unten gezeigt vollführt.

LOAD DATA LOCAL INFILE 'C:/xampp/htdocs/datei.csv'
INTO TABLE iplist
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
(eins, zwei, drei, vier, fuenf);

In Worten bedeutet das ungefähr soetwas, das die Datenbank Daten extern laden soll. Diese befinden sich in einer lokalen Datei. Diese Daten sollen in die Tabelle iplist übertragen werden. In dieser Datei sind die einzelnen Datensätze mit einem Komma getrennt. So spaltet die Datenbank gleich unsere Strings einander auf. Optional mit einem Hochkomma abgeschlossen. In Klammern stehen entsprechend die Spaltenbezeichner der Tabelle, damit die Datenbank weiß, worein sie die Daten zu schreiben hat. Das wars schon.