Zusammenfassung: In diesem Tutorial zeigen wir Ihnen verschiedene Möglichkeiten, eine CSV-Datei in eine PostgreSQL-Tabelle zu importieren.
Erstellen Sie zunächst eine neue Tabelle mit dem Namen persons
mit den folgenden Spalten:
-
id
: die Personen-ID -
first_name
: Vorname -
last_name:
Nachname -
dob
Geburtsdatum -
email
: E-Mail-Adresse
Code language: SQL (Structured Query Language) (sql)CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), dob DATE, email VARCHAR(255), PRIMARY KEY (id))
Zweitens bereiten Sie eine CSV-Datei mit folgendem Format vor:
Der Pfad der CSV-Datei lautet wie folgt: C:\sampledb\persons.csv
Der Pfad der Personen.csv-Datei
Importieren einer CSV-Datei in eine Tabelle mittels COPY-Anweisung
Um diese CSV-Datei in die persons
-Tabelle zu importieren, verwenden Sie die COPY
-Anweisung wie folgt:
Code language: SQL (Structured Query Language) (sql)COPY persons(first_name, last_name, dob, email)FROM 'C:\sampledb\persons.csv'DELIMITER ','CSV HEADER;
PostgreSQL gibt folgende Meldung zurück:
Code language: Shell Session (shell)COPY 2
Das bedeutet, dass zwei Zeilen kopiert worden sind. Lassen Sie uns die persons
Tabelle überprüfen.
Code language: SQL (Structured Query Language) (sql)SELECT * FROM persons;
Es funktioniert wie erwartet.
Lassen Sie uns die COPY-Anweisung genauer betrachten.
Zunächst geben Sie die Tabelle mit Spaltennamen nach dem Schlüsselwort COPY
an. Die Reihenfolge der Spalten muss mit der Reihenfolge in der CSV-Datei übereinstimmen. Falls die CSV-Datei alle Spalten der Tabelle enthält, müssen Sie diese nicht explizit angeben, z. B.:
Code language: SQL (Structured Query Language) (sql)COPY sample_table_nameFROM 'C:\sampledb\sample_data.csv' DELIMITER ',' CSV HEADER;
Zweitens setzen Sie den Pfad der CSV-Datei nach dem Schlüsselwort FROM
. Da das CSV-Dateiformat verwendet wird, müssen Sie sowohl DELIMITER
als auch CSV
angeben.
Drittens geben Sie das Schlüsselwort HEADER
an, um anzuzeigen, dass die CSV-Datei einen Header enthält. Wenn der COPY
-Befehl Daten importiert, ignoriert er den Header der Datei.
Beachten Sie, dass die Datei direkt vom PostgreSQL-Server gelesen werden muss, nicht von der Client-Anwendung. Daher muss sie vom PostgreSQL-Serverrechner aus zugänglich sein. Außerdem müssen Sie Superuser-Zugriff haben, um die COPY
-Anweisung erfolgreich auszuführen.
Importieren einer CSV-Datei in eine Tabelle mit pgAdmin
Für den Fall, dass Sie eine CSV-Datei von Ihrem Computer in eine Tabelle auf dem PostgreSQL-Datenbankserver importieren müssen, können Sie den pgAdmin verwenden.
Die folgende Anweisung schneidet die persons
Tabelle ab, so dass Sie die Daten erneut importieren können.
Code language: SQL (Structured Query Language) (sql)TRUNCATE TABLE persons RESTART IDENTITY;
Zunächst klicken Sie mit der rechten Maustaste auf die Tabelle persons
und wählen den Menüpunkt Import/Export… aus:
Zweitens: (1) Wechseln Sie zum Import, (2) zur Importdatei wechseln, (3) das Format als CSV wählen, (4) das Trennzeichen als Komma wählen (,
):
Drittens: Klicken Sie auf die Registerkarte „Spalten“, entfernen Sie das Häkchen in der Spalte „id“ und klicken Sie auf die Schaltfläche OK:
Schließlich warten Sie, bis der Importvorgang abgeschlossen ist. Im Folgenden sehen Sie den Dialog, der Sie über den Fortschritt des Imports informiert:
In diesem Tutorial haben Sie gelernt, wie Sie mit der COPY
-Anweisung und dem Tool pgAdmin Daten aus einer CSV-Datei in eine Tabelle auf dem PostgreSQL-Datenbankserver importieren.
- War dieses Tutorial hilfreich?
- JaNein