Einführung
PostgreSQL (oder Postgres ) ist ein objektrelationales Datenbankverwaltungssystem ähnlich wie MySQL, unterstützt jedoch erweiterte Funktionalität und Stabilität. Eine hervorragende Funktion ist, dass Sie eine Postgres-Tabelle in eine .CSV-Datei exportieren können Datei. Dies kann besonders hilfreich sein, wenn Sie eine Tabelle in ein anderes System übertragen oder in eine andere Datenbankanwendung importieren.
In diesem Tutorial erfahren Sie, wie Sie eine Postgres-Tabelle mithilfe von \copy
in eine CSV-Datei exportieren und COPY
Befehle.
Voraussetzungen
- PostgreSQL auf dem System installiert
- Eine vorhandene Datenbank in PostgreSQL
- Ein Terminalfenster / Befehlszeile (Strg+Alt+T)
Bevor Sie mit PostgreSQL beginnen
Postgres kann unter Windows, Mac, Linux installiert und sogar in einem Docker-Container bereitgestellt werden. Diese Anleitung führt Sie durch das Verfahren mit Ubuntu Linux. Alle Befehle exportieren kann in jedem anderen unterstützten Betriebssystem verwendet werden.
Wenn Sie Postgres nicht haben, können Sie es installieren, indem Sie die Software von der Website des Entwicklers herunterladen. Installieren Sie Postgres unter Ubuntu aus den Standard-Repositories, indem Sie Folgendes eingeben:
sudo apt-get install postgresql
Sobald der Dienst startet, müssen Sie eine Datenbank erstellen oder importieren.
Exportieren Sie Daten aus der Tabelle in .CSV mit dem COPY-Befehl
In psql gibt es zwei verschiedene Befehle.
Die grundlegende Verwendung von COPY
Befehl lautet wie folgt:
COPY db_name TO [/path/to/destination/db_name.csv] DELIMITER ‘,’ CSV HEADER;
Ersetzen Sie db_name
mit dem tatsächlichen Namen Ihrer Datenbank und dem /path/to/destination
durch den tatsächlichen Speicherort, an dem Sie die .CSV-Datei speichern möchten.
Unter Windows möchten Sie beispielsweise eine Kopie unter C:\tmp\db_name.csv speichern . Unter Linux könnte der Standardpfad /tmp/db_name.csv sein . Dann können Sie die .CSV-Datei öffnen und den Inhalt der Tabelle in einem etwas anderen Format sehen. Sie können den Unterschied im Beispiel unten sehen.
Zuerst listen wir den Inhalt einer bestimmten Tabelle in der psql-Shell auf mit dem Befehl:
SELECT * FROM [table_name]
Die Ausgabe zeigt die Werte in unserer Beispieltabelle wie im Bild unten:
Jetzt können Sie es mit der entsprechenden .CSV-Datei vergleichen. Die aus der zuvor erwähnten Tabelle exportierten Daten erscheinen in einer .CSV-Datei, wie in der folgenden Abbildung zu sehen:
Exportieren Sie bestimmte Spalten aus der Tabelle in .CSV
Sie können den COPY
verwenden Befehl, um auf bestimmte Spalten abzuzielen:
COPY [db_name](column1,column2,column3) TO [/path/to/destination/db_name_partial.csv] DELIMITER ‘,’ CSV HEADER;
Exportieren Sie Daten aus der Tabelle in .CSV mit dem \copy-Befehl
Verwenden Sie \copy
Befehl, wenn Sie aus der Ferne arbeiten. Es ermöglicht Ihnen, Daten von einem Server in eine CSV-Datei auf einem lokalen Client-Computer zu exportieren. Verwenden Sie es wie folgt:
\copy (SELECT * FROM [db_name]) to [/path/to/destination] CSV HEADER
Ersetzen Sie db_name
mit dem Namen der Quelldatenbank. Ersetzen Sie /path/to/destination
mit dem tatsächlichen Speicherort für die .CSV-Datei. Unter Windows können Sie nach C:tmpdb_name.csv exportieren . Unter Linux können Sie nach /tmp/db_name.csv exportieren .
Die Datei \copy
Der Befehl erfordert nur erhöhte Berechtigungen für das Clientsystem. Dies ist hilfreich, wenn Sie nicht über ausreichende Berechtigungen zum Ausführen von COPY
verfügen Befehl auf dem Server. Auch die Datei \copy
Befehl können Sie einen relativen Pfad verwenden.
Sie könnten beispielsweise desktop/db_name.csv angeben auf einem Windows-System, und es würde auf dem Desktop des aktuellen Benutzers gespeichert.