Die Befehle:
Um eine Tabelle oder Abfrage nach csv zu exportieren, verwenden Sie einen der folgenden Befehle:
Für den Client-seitigen Export:
\copy to '' csv header
Für den Server-seitigen Export:
COPY to '' csv header;
Beispiel Absoluter Pfad: ‚/Users/matt/Desktop/filename.csv‘
Beispiel Relativer Pfad: ‚Desktop/Dateiname.csv‘
Schlüsselwörter:
- csv: Dies teilt dem Kopierbefehl mit, dass die zu erstellende Datei eine CSV-Datei sein soll.
- header: weist den Kopierbefehl an, die Kopfzeilen am Anfang des Dokuments einzufügen.
Verwendung der Befehle
Comma Separated Value (CSV)-Dateien sind ein nützliches Format zum Speichern von Daten. Viele Tools unterstützen den Import von Daten aus CSV-Dateien, da es sich um ein einfach zu lesendes Format handelt, das reiner Text ist und nicht von Metadaten abhängt.
In psql gibt es zwei Befehle, die dies ermöglichen, die sich beide leicht unterscheiden.
Der erste ist der Meta-Befehl \copy, der zum Erzeugen einer Client-CSV-Datei verwendet wird. Dieser Befehl nimmt die angegebene Tabelle oder die Abfrageergebnisse und schreibt sie auf den Client-Computer.
Der zweite Befehl, COPY, generiert eine CSV-Datei auf dem Server, auf dem die Datenbank läuft.
Der \copy-Befehl
Der Meta-Befehl \copy wird zum Exportieren auf einen Client-Computer verwendet. Er ist nützlich, um eine Datenbank zu kopieren, die möglicherweise einen etwas eingeschränkten Zugriff hat, und um eine persönliche Kopie der Daten zu erstellen. Beispielsweise kann ein Benutzer eine csv-Datei erzeugen wollen, um Finanzdaten in Excel zu analysieren. Das Format einer \copy to csv ist wie folgt:
\copy to csv header
Der Abschnitt kann mit einer Tabelle oder Abfrage gefüllt werden. Um z.B. alle Einträge aus einer Tabelle zu kopieren, kann hier der Tabellenname eingetragen werden. Um alle Einträge, die „saw“ im Namen enthalten, aus der Tabelle der Werkzeuge in eine csv zu kopieren, könnten folgende Befehle ausgeführt werden:
Das ist der Pfad von dem Ort, an dem psql derzeit Dateien speichert, zu dem Ort, an dem Sie die Datei speichern möchten. Der Ort, an dem psql gerade speichert, kann mit dem Befehl \! pwd ermittelt werden.
Hinweis: Der Meta-Befehl \! nimmt die Argumente, die ihm übergeben werden, und führt sie als Bash-Befehl innerhalb von psql aus.
Der Befehl pwd gibt das aktuelle Arbeitsverzeichnis aus. Die Verwendung des Meta-Befehls \! pwd und \! ls wird im Folgenden gezeigt:
Das bedeutet, dass, wenn der Dateiname „myTools.csv“ verwendet wird, wird sie in /Benutzer/matt/ gespeichert, wie unten zu sehen ist:
Die Datei kann auch an anderer Stelle gespeichert werden, indem ein bestimmter relativer Pfad angegeben wird. Wenn zum Beispiel ‚/Desktop/.csv‘ als Pfad eingegeben wird, wird die Datei auf dem Desktop gespeichert.
Nach dem relativen Pfad im Befehl folgt der Text ‚csv header;‘ Dieser Text bewirkt zwei Dinge. Das ‚csv‘ gibt an, dass die Daten im CSV-Format gespeichert werden sollen. Andere mögliche Formate sind ‚text‘ und ‚Binary‘.‘
Der ‚header‘ gibt an, dass beim Kopieren der Daten in eine csv-Datei die Namen jeder Spalte in der ersten Zeile gespeichert werden sollen, wie hier gezeigt:
Der COPY-Befehl
Der COPY-Befehl erfordert ebenfalls die Angabe einer zu kopierenden Tabelle/Abfrage durch den Benutzer. Im Gegensatz zu \copy erfordert der COPY-Befehl jedoch einen absoluten Pfad. Das liegt daran, dass COPY zum Kopieren einer Datenbank von einem Server an einen anderen Ort auf demselben Server dient, nicht auf einen Client-Computer. Der Befehl \! pwd ist sehr nützlich, um den absoluten Pfad zu finden, wenn Sie nicht wissen, wo die Datei gespeichert werden soll. Um mit \copy auf dem Desktop zu speichern, würde ‚Desktop/.csv‘ verwendet werden. Um dies mit COPY zu tun, müsste ‚/Benutzer/Desktop/.csv‘ wie unten gezeigt verwendet werden:
Zusammenfassung
- Um eine Tabelle oder Abfrage in eine csv-Datei zu kopieren, verwenden Sie entweder den Befehl \copy oder den Befehl COPY.
- \copy sollte für eine Kopie auf lokale Systeme verwendet werden
- \copy verwendet einen relativen Pfad
- COPY sollte verwendet werden, um eine csv auf der Serverseite zu erstellen.
- COPY verwendet einen absoluten Pfad.