Articles

Importieren einer CSV-Datei in eine PostgreSQL-Tabelle

Posted on

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
CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), dob DATE, email VARCHAR(255), PRIMARY KEY (id))
Code language: SQL (Structured Query Language) (sql)
posgresql import csv

Zweitens bereiten Sie eine CSV-Datei mit folgendem Format vor:

csv-Daten
csv-Datei

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:

COPY persons(first_name, last_name, dob, email)FROM 'C:\sampledb\persons.csv'DELIMITER ','CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

PostgreSQL gibt folgende Meldung zurück:

COPY 2
Code language: Shell Session (shell)

Das bedeutet, dass zwei Zeilen kopiert worden sind. Lassen Sie uns die persons Tabelle überprüfen.

SELECT * FROM persons;
Code language: SQL (Structured Query Language) (sql)

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.:

COPY sample_table_nameFROM 'C:\sampledb\sample_data.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

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.

TRUNCATE TABLE persons RESTART IDENTITY;
Code language: SQL (Structured Query Language) (sql)

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.