Wie importiert man eine CSV-Datei in eine Tabelle in einer MySQL-Datenbank

Gustavo du Mortier 1 April 2022
  1. LOAD DATA INFILE SQL zum Importieren von CSV in MySQL
  2. Verwenden Sie HeidiSQL, um CSV nach MySQL zu importieren
Wie importiert man eine CSV-Datei in eine Tabelle in einer MySQL-Datenbank

Dieser Tutorial-Artikel stellt zwei Methoden vor, um Daten aus einer Datei mit durch Komma getrennten Werten (CSV) in eine MySQL-Datenbank zu importieren und in eine Tabelle einzufügen.

Wir werden verschiedene Ansätze vorstellen, um eine CSV-Datei in MySQL zu importieren. Diese Aufgabe kann programmatisch durch Ausführen einer Reihe von SQL-Befehlen oder interaktiv durch Verwendung des Datei-Import-Dialogs eines grafischen MySQL-Clients wie HeidiSQL durchgeführt werden.

LOAD DATA INFILE SQL zum Importieren von CSV in MySQL

Sehen wir uns zunächst an, wie man die CSV-Datei programmatisch mit der LOAD DATA INFILE SQL-Anweisung importiert.

Bevor Sie die Datei importieren können, müssen Sie die Tabelle mit den importierten Daten erstellen. Angenommen, Ihre CSV-Datei enthält Buchinformationen, unterteilt in die Felder ISBN, Titel, Autor und Listenpreis. Um eine solche Tabelle zu erstellen, müssen Sie einen Befehl wie diesen ausführen:

CREATE TABLE BooksCSV (
    ISBN VARCHAR(255) NULL,
    title VARCHAR(255) NULL,
    author VARCHAR(255) NULL,
    ListPrice VARCHAR(255) NULL
);

Es wird empfohlen, dass alle Felder NULL-Werte zulassen und dass die Tabelle keinen Primärschlüssel hat, da nicht im Voraus bekannt ist, ob die Daten in der CSV-Datei vollständig und normalisiert sind.

Eine weitere Empfehlung ist, auch bei numerischen Daten nur VARCHAR-Felder zu verwenden, um Fehler im Prozess durch unsachgemäß formatierte Daten in der Datei zu vermeiden. Nach dem Import der Daten können diese direkt in der Datenbank bereinigt werden, wobei die Tabellenzeilen gelesen und die notwendigen Validierungen und Korrekturen vorgenommen werden können.

Sobald Sie die Zieltabelle für die Daten haben, müssen Sie den Pfad der CSV-Datei ermitteln. Angenommen, der vollständige Pfad für die Datei lautet C:\csvdata\books.csv. Um diese Datei dann in Ihre Tabelle zu importieren, müssen Sie den Befehl ausführen:

LOAD DATA
INFILE 'c:/csvdata/books.csv'
INTO TABLE BooksCSV ` 

Die Anweisung LOAD DATA INFILE erfordert, dass Sie die Quelldatei und die Zieltabelle angeben. Optional können Sie auch andere Parameter angeben, wie z. B. das Feld-Trennzeichen, den Text-Qualifier und die Existenz von Kopfzeilen.

Im folgenden Beispiel geben die hinzugefügten Parameter an, dass die Felder durch Kommas getrennt werden, dass Zeichenketten durch doppelte Anführungszeichen eingeschlossen werden und dass die erste Zeile ignoriert werden muss, da sie Spaltenüberschriften enthält.

LOAD DATA
INFILE 'c:/csvdata/books.csv'
INTO TABLE BooksCSV 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
IGNORE 1 ROWS;

Nun, da Sie wissen, wie man eine CSV-Datei in MySQL programmatisch importiert.

Verwenden Sie HeidiSQL, um CSV nach MySQL zu importieren

Sehen wir uns an, wie man das interaktiv mit einem grafischen MySQL-Client wie HeidiSQL bewerkstelligt.

Die Schritte sind die gleichen, wie wir sie oben gesehen haben:

  • Erstellen Sie die Tabelle
  • Importieren Sie den Inhalt der Datei in die Datei.

Um die Tabelle mit HeidiSQL zu erstellen, müssen Sie den Client mit dem MySQL-Server verbinden und die Datenbank auswählen, in die die Daten importiert werden sollen. Klicken Sie dann mit der rechten Maustaste auf die Datenbank und wählen Sie die Option Create New - Table.

mysql-import csv-bild 1

Sie müssen den Namen der Tabelle in das entsprechende Feld eingeben und die Spalten hinzufügen. Um eine Spalte hinzuzufügen, klicken Sie auf die Schaltfläche +, und geben Sie ihren Namen und Datentyp ein.

In diesem Beispiel heißt die Tabelle BooksCSV, und die Felder sind die gleichen, die wir im vorherigen Beispiel verwendet haben.

Wenn Sie mit dem Hinzufügen von Spalten fertig sind, klicken Sie auf Save, um die Tabelle in der Datenbank zu erstellen.

Nachdem Sie die Tabelle erstellt haben, können Sie die Daten aus der CSV-Datei importieren. Bevor Sie den Importvorgang starten, müssen Sie jedoch das Laden lokaler Daten sowohl auf der Client- als auch auf der Serverkomponente aktivieren, indem Sie die jeweiligen Startparameter ändern. Es gibt einige Sicherheitsüberlegungen, die Sie berücksichtigen müssen, wenn Sie das Laden von lokalen Daten aktivieren. Um mehr darüber zu erfahren, lesen Sie diesen Artikel aus den offiziellen MySQL-Dokumenten.

Wenn Sie bereit sind, die CSV-Datei zu importieren, gehen Sie in HeidiSQL zum Menü Werkzeuge und wählen Sie die Option CSV-Datei importieren. Sie müssen den Pfad der zu importierenden CSV-Datei angeben und die Datenbank und die Tabelle auswählen, in die die importierten Daten eingefügt werden sollen. Sie können die Markierung von Tabellenfeldern aufheben, wenn es in der Tabelle mehr Felder gibt als in der Datei. Zuletzt klicken Sie auf Import! und der Prozess wird gestartet.

mysql-import csv-bild 2

Um den Import durchzuführen, gibt die grafische Oberfläche den gleichen Befehl LOAD DATA aus, den wir zuvor für die programmatische Option beschrieben haben, so dass das Endergebnis ziemlich das gleiche ist - die Datenbanktabelle wird mit Daten aus der CSV-Datei gefüllt.

Weitere Informationen zur Verwendung der LOAD DATA-Anweisung finden Sie in diesem Artikel in der offiziellen MySQL-Dokumentation.

Verwandter Artikel - MySQL Import