Zurück zur Artikelliste Artikel
8 Leseminuten

Importieren einer CSV-Datei in eine MySQL-Datenbank

CSV-Dateien speichern und übertragen Daten zwischen Datenbanken. Lesen Sie weiter, um herauszufinden, wie einfach es ist, mit CSV-Dateien in einer MySQL-Datenbank zu arbeiten.

CSV-Dateien sind eines der ältesten Formate für den Datenaustausch und werden von IT-Fachleuten aus verschiedenen Bereichen immer noch häufig verwendet. Es ist üblich, dass Online-Datenquellen und verschiedene Datenbanksoftware ihre Daten-Uploads und -Downloads im CSV-Format anbieten.

In diesem Artikel gehen wir kurz darauf ein, was eine CSV-Datei ist und wie man mit ihr arbeitet. Sie erfahren, wie Sie eine CSV-Datei in eine MySQL-Datenbank importieren können, indem Sie entweder ein Befehlszeilentool oder eine grafische Benutzeroberfläche wie MySQL Workbench verwenden. Obwohl letzteres viel schneller und einfacher ist, ist es wichtig, beides zu kennen und zu üben.

Wenn Sie noch nie mit einer MySQL-Datenbank gearbeitet haben, sollten Sie sich unbedingt unsere interaktiven Kurse ansehen:

Beide Kurse enden mit einem Quiz, damit Sie überprüfen können, wie viel Sie gelernt haben. Sie können auch diesen Artikel lesen, um zu erfahren, wie Sie eine MySQL-Datenbank auf einem Windows-PC installieren. Das ist für beide Kurse nicht notwendig, aber wenn Sie eine MySQL-Datenbank auf Ihrem Computer haben, können Sie später damit üben.

Beginnen wir also mit unserer Übersicht über das CSV-Dateiformat.

Über CSV-Dateien

CSV steht für "Komma-getrennte Werte". Eine CSV-Datei ist eine Textdatei, die tabellarische Daten speichert. Jede Zeile einer CSV-Datei stellt eine Zeile einer Tabelle dar. Normalerweise werden die Spaltenwerte durch ein Komma getrennt (daher der Name " kommagetrennte Werte"), aber Sie können auch andere Trennzeichen verwenden, z. B. ein Semikolon oder einen Tabulator. Normalerweise werden in der ersten Zeile einer CSV-Datei die Spaltenüberschriften und in den folgenden Zeilen die Daten gespeichert.

Nun werden Sie sich vielleicht fragen, was passiert, wenn ein Wert ein Kommazeichen enthält. Es wird als Sonderfall behandelt: Der Wert wird in doppelte Anführungszeichen gesetzt. Der Wert 12.34 zum Beispiel kommt ohne Anführungszeichen aus, aber der Wert 12,34 muss als "12,34" geschrieben werden, um zu verhindern, dass er als zwei Werte (12 und 34) statt als ein Wert (12,34) betrachtet wird.

Schauen wir uns eine Beispiel-CSV-Datei mit dem Namen countries.csv an, die wir später in die MySQL-Datenbank importieren werden.

id,country,population,capital
1,USA,"329,500,000",Washington D.C.
2,Canada,"38,010,000",Ottawa
3,UK,"67,220,000",London
4,Spain,"47,350,000",Madrid
5,Greenland,"56,367",Nuuk

Sie ist vielleicht nicht so übersichtlich wie eine Tabelle, aber Sie können das Muster deutlich erkennen. In der ersten Zeile werden kommagetrennte Spaltenüberschriften gespeichert, und in den folgenden Zeilen werden kommagetrennte Werte gespeichert. Bitte beachten Sie, dass jeder Wert, der ein Komma enthält, in doppelte Anführungszeichen gesetzt wird.

Und hier ist eine Tabelle, die auf der Datei countries.csv basiert:

idcountrypopulationcapital
1USA329,500,000Washington D.C.
2Canada38,010,000Ottawa
3UK67,220,000London
4Spain47,350,000Madrid
5Greenland56,367Nuuk

Warum eine CSV-Datei in eine Datenbank importieren?

CSV-Dateien verwenden ein einfaches Textformat, um Daten zu speichern. Relationale Datenbanken und CSV-Dateien wurden etwa zur gleichen Zeit in den 1970er Jahren entwickelt. Seitdem werden CSV-Dateien für die Übertragung von Daten zwischen Datenbanken verwendet.

Wir können Daten in einem CSV-Dateiformat aus einer Datenbank exportieren und sie in diesem Format in eine andere Datenbank importieren (z. B. zur weiteren Verarbeitung und Analyse). Auch verschiedene Online-Datenressourcen und Datenbank-Tools bieten Daten-Uploads und -Downloads im CSV-Format an. Daher ist CSV ein sehr gängiges Dateiformat für die Übertragung von Daten.

Der Import von CSV-Dateien ist schnell und einfach. Er ist viel besser als das Erstellen einer Tabelle und das manuelle Einfügen der Daten. Aus diesem Grund spielen CSV-Dateien trotz ihrer Einfachheit eine so wichtige Rolle bei der Datenverarbeitung und -analyse.

Importieren einer CSV-Datei in eine MySQL-Datenbank

In der MySQL-Datenbank gibt es zwei Möglichkeiten, eine CSV-Datei zu importieren. Die eine ist die Verwendung eines Befehlszeilentools und die andere die Verwendung einer grafischen Benutzeroberfläche (GUI). Schauen wir uns beide Möglichkeiten an.

Importieren einer CSV-Datei in MySQL über die Befehlszeile

Führen Sie die folgenden Schritte aus, um eine CSV-Datei über die Befehlszeile in die MySQL-Datenbank zu importieren.

Verbinden einer Datenbank

Wenn Sie eine funktionierende MySQL-Datenbank auf Ihrem Computer installiert haben, können Sie den MySQL Command Line Client (siehe unten) verwenden:

Importieren einer CSV-Datei in eine MySQL-Datenbank

Sie können eine Verbindung zu Ihrer Datenbank herstellen, indem Sie den Befehl mysql --host=localhost --user=username --password ausführen und ein Passwort eingeben:

Importieren einer CSV-Datei in eine MySQL-Datenbank

Bitte beachten Sie, dass sowohl der MySQL Command Line Client als auch das Standard-Befehlszeilentool die gleiche mysql-Eingabeaufforderung bereitstellen.

Importieren einer CSV-Datei

Bevor Sie eine CSV-Datei importieren, müssen Sie manuell eine Tabelle mit den richtigen Datentypen für jede Spalte erstellen.

Lassen Sie uns also zunächst mit dem Befehl CREATE SCHEMA ein neues Schema erstellen. Dann führen wir den Befehl USE aus, um sicherzustellen, dass Sie sich in Ihrem neu erstellten Schema befinden. Zuletzt erstellen wir eine neue Tabelle mit dem Befehl CREATE TABLE.

CREATE SCHEMA data;
USE data;
CREATE TABLE `countries` (
`id` int DEFAULT NULL,
`country` text,
`population` text,
`capital` text);

Mit dem Befehl CREATE SCHEMA gefolgt von einem Schemanamen wird ein neues Schema mit dem Namen data erstellt. Und der Befehl USE, gefolgt von einem Schemanamen, stellt sicher, dass wir innerhalb des neu erstellten Schemas arbeiten. Anschließend erstellen wir mit dem Befehl CREATE TABLE eine neue Tabelle.

Jetzt können wir die countries Tabelle mit den Daten aus unserer CSV-Datei laden.

LOAD DATA INFILE 'countries.csv'
INTO TABLE countries
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Dieser Befehl gibt Folgendes an:

  • Die Datei, aus der die Daten geladen werden sollen: LOAD DATA INFILE 'countries.csv'
  • Die Tabelle, in die die Daten geladen werden sollen: INTO TABLE countries
  • Das Zeichen, das die Werte trennt: FIELDS TERMINATED BY ','

Wenn Sie ein anderes Trennzeichen, wie z. B. ein Semikolon oder einen Tabulator, verwenden, sollten Sie diese Zeile aktualisieren, um Ihr Trennzeichen aufzunehmen: FIELDS TERMINATED BY ';' oder FIELDS TERMINATED BY '  '

  • Wenn einige oder alle Werte in doppelte Anführungszeichen eingeschlossen sind, fügen Sie diese Zeile ein: ENCLOSED BY '"'
  • Das Zeichen, das die Zeilen abschließt: LINES TERMINATED BY '\n'
  • Die Information, dass die erste Zeile, die die Kopfzeile enthält, ignoriert werden soll: IGNORE 1 ROWS;

Hier ist die Konsolenausgabe aller Befehle:

Importieren einer CSV-Datei in eine MySQL-Datenbank

Überprüfen wir den Importvorgang, indem wir die Anweisung SELECT ausführen.

Die Befehlszeile gibt einen korrekten Datensatz zurück, auch wenn die Formatierung möglicherweise gestört ist:

Importieren einer CSV-Datei in eine MySQL-Datenbank

Überprüfen wir dasselbe mit Hilfe der GUI-Schnittstelle.

Importieren einer CSV-Datei in eine MySQL-Datenbank

Jetzt sind wir sicher, dass der Importvorgang erfolgreich war.

Schauen wir uns nun an, wie wir das gleiche mit der GUI tun können.

Verwendung einer MySQL-GUI

Wir verwenden MySQL Workbench, eine der beliebtesten GUIs für MySQL. Führen Sie die folgenden Schritte aus, um eine CSV-Datei über die grafische Benutzeroberfläche in eine MySQL-Datenbank zu importieren.

Verbinden einer Datenbank

In MySQL Workbench können Sie eine Verbindung zu einer beliebigen Datenbank herstellen, indem Sie auf der Startseite auf das +-Zeichen neben MySQL-Verbindungen klicken. Es öffnet sich ein Fenster, in dem Sie die Verbindungsdetails angeben müssen, z. B. den Verbindungsnamen, die Verbindungsmethode, den Hostnamen, den Port, den Benutzernamen und das Passwort.

Importieren einer CSV-Datei in eine MySQL-Datenbank

Testen Sie nun Ihre Verbindung, indem Sie auf die Schaltfläche Verbindung testen klicken. Geben Sie das Kennwort ein, und nach einem erfolgreichen Test erhalten Sie diese Meldung:

Importieren einer CSV-Datei in eine MySQL-Datenbank

Schließen Sie beide Fenster, indem Sie auf die Schaltfläche OK klicken. Nun können wir mit dem Import einer CSV-Datei fortfahren.

Importieren einer CSV-Datei

Wenn Sie eine grafische Benutzeroberfläche verwenden, müssen Sie vor dem Importieren einer CSV-Datei keine Tabelle erstellen.

Der erste Schritt besteht darin, ein neues Schema zu erstellen (wenn Sie ein neues Schema anstelle eines bestehenden Schemas verwenden möchten). Dies können Sie auf zwei Arten tun:

  • Führen Sie den Befehl CREATE SCHEMA im Abfragefenster aus: Importieren einer CSV-Datei in eine MySQL-Datenbank
  • Erstellen Sie ein Schema über die GUI-Schnittstelle: Importieren einer CSV-Datei in eine MySQL-Datenbank

Klicken Sie anschließend mit der rechten Maustaste auf die Tabellen unter dem Schemanamen und wählen Sie die Option Assistent für den Tabellenimport.

Importieren einer CSV-Datei in eine MySQL-Datenbank

Es öffnet sich ein Fenster, das Sie durch den Importvorgang führt.

Wählen Sie nun die CSV-Datei, die Sie importieren möchten, und klicken Sie auf Weiter.

Importieren einer CSV-Datei in eine MySQL-Datenbank

Sie können entweder eine vorhandene Tabelle verwenden (bei dieser Option müssen Sie vor dem Importvorgang eine Tabelle erstellen) oder eine neue Tabelle erstellen. In diesem Fall entscheiden wir uns für die Erstellung einer neuen Tabelle.

Importieren einer CSV-Datei in eine MySQL-Datenbank

MySQL Workbench erkennt das Dateiformat und schlägt die zu verwendenden Kodierungs- und Spaltendatentypen vor. Sie können diese nach eigenem Ermessen ändern, aber wir werden mit den vorgeschlagenen Werten fortfahren.

Importieren einer CSV-Datei in eine MySQL-Datenbank

Hier ist die Zusammenfassung der Aufgaben, die ausgeführt werden:

Importieren einer CSV-Datei in eine MySQL-Datenbank

Und das war's schon!

Importieren einer CSV-Datei in eine MySQL-Datenbank

Wenn Sie auf die Schaltfläche Weiter klicken, erhalten Sie einen detaillierten Bericht.

Importieren einer CSV-Datei in eine MySQL-Datenbank

Nun können wir den Assistenten mit einem Klick auf die Schaltfläche Fertig stellen schließen.

Überprüfen wir den Erfolg des Importvorgangs, indem wir unsere neu erstellte Tabelle abfragen.

Importieren einer CSV-Datei in eine MySQL-Datenbank

Es besteht kein Zweifel, dass der Import einer CSV-Datei über die grafische Benutzeroberfläche schneller und weniger umständlich ist als der Import über die Befehlszeile, aber beide sind gut zu wissen.

Um den Import von CSV-Dateien mit verschiedenen Datenbank-Engines zu vergleichen, lesen Sie unseren Artikel How to Import CSVs to PostgreSQL Using PgAdmin. Um mehr über den Exportprozess zu erfahren, lesen Sie den Artikel How to Export a CSV File From a T-SQL Query (Wie man eine CSV-Datei aus einer T-SQL-Abfrage exportiert ), der den Exportprozess einer CSV-Datei in der MS SQL Server-Datenbank-Engine beschreibt.

Lassen Sie uns einige CSV-Dateien importieren!

CSV-Dateien sind wegen ihrer Einfachheit weit verbreitet. Sie können eine CSV-Datei mit einem einfachen Texteditor, wie z.B. Notepad, erstellen. CSV-Dateien können Semikolons anstelle von Kommas verwenden oder Werte in doppelte Anführungszeichen setzen oder auch nicht.

Wie wir in diesem Artikel gesehen haben, ist es einfach, CSV-Dateien in eine MySQL-Datenbank zu importieren. Sie können entweder die Befehlszeile oder eine grafische Benutzeroberfläche verwenden. Der beste Weg, sich mit beiden Möglichkeiten vertraut zu machen, ist die Praxis. Probieren Sie also dieses und andere Beispiele aus. Sie können auch unsere interaktiven MySQL-Kurse nutzen, um mehr über diese Datenbank zu erfahren. Hier finden Sie eine Übersicht über die Kurse in unserem SQL von A bis Z in MySQL-Track.

Viel Erfolg!