De commando’s:
Om een tabel of query naar csv te exporteren gebruik je een van de volgende commando’s:
Voor Client-Side Export:
\copy to '' csv header
Voor Server-Side Export:
COPY to '' csv header;
Voorbeeld Absolute Path: ‘/Users/matt/Desktop/filename.csv’
Voorbeeld Relatief Pad: ‘Desktop/filename.csv’
Key words:
- csv: dit vertelt het kopieer commando dat het bestand dat wordt gemaakt een CSV bestand moet zijn.
- header: hiermee wordt aan het kopieercommando doorgegeven dat de headers bovenaan het document moeten staan.
Gebruik van de commando’s
Comma Separated Value (CSV) bestanden zijn een handig formaat voor het opslaan van gegevens. Veel tools ondersteunen het importeren van data uit CSV bestanden omdat het een makkelijk te lezen formaat is dat platte tekst bevat en niet afhankelijk is van metadata.
In psql zijn er twee commando’s die dit kunnen doen, beide iets anders.
Het eerste is het \copy meta-commando dat wordt gebruikt om een client CSV bestand te genereren. Dit commando neemt de opgegeven tabel of query resultaten en schrijft ze naar de computer van de client.
Het tweede commando, COPY, genereert een CSV bestand op de server waar de database draait.
Het \copy commando
Het \copy meta-commando wordt gebruikt voor het exporteren naar een client computer. Het is nuttig voor het kopiëren van een database met beperkte toegang en voor het maken van een persoonlijke kopie van de gegevens. Een gebruiker kan bijvoorbeeld een csv willen genereren om financiële gegevens in Excel te analyseren. Het formaat van een kopie naar csv is als volgt:
\copy to csv header
De sectie kan worden gevuld met een tabel of query. Om bijvoorbeeld alle entries uit een tabel te kopiëren, kan de tabelnaam hier geplaatst worden. Om alle items met “saw” in hun naam uit de gereedschapstabel naar een csv te kopiëren, kunnen de volgende commando’s worden uitgevoerd:
Het is het pad van waar psql momenteel bestanden opslaat naar waar je het bestand wilt opslaan. De plaats waar psql momenteel bestanden opslaat kan worden gevonden met het commando pwd
Note: Het meta-commando neemt de argumenten die het krijgt en voert ze uit als een bash commando binnen psql.
Het pwd commando print de huidige werkdirectory. Hieronder ziet u hoe de meta-commando’s pwd en ls worden gebruikt:
Dit betekent dat als de bestandsnaam “myTools.csv” wordt gebruikt, wordt het opgeslagen in /Users/matt/, zoals hieronder te zien is:
Het bestand kan ook elders worden opgeslagen door een specifiek relatief pad in te voeren. Als bijvoorbeeld ‘/Desktop/.csv’ als pad wordt ingevoerd, wordt het bestand op het bureaublad opgeslagen.
Na het relatieve pad in het commando staat de tekst ‘csv header;’ Deze tekst doet twee dingen. De ‘csv’ geeft aan dat de gegevens moeten worden opgeslagen in het CSV-formaat. Andere mogelijke formaten zijn ‘text’ en ‘Binary.’
De ‘header’ specificeert dat, wanneer de gegevens naar een csv-bestand worden gekopieerd, de namen van elke kolom op de eerste regel moeten worden opgeslagen, zoals hier te zien is:
De opdracht COPY
De opdracht COPY vereist ook dat de gebruiker een tabel/Query opgeeft om te kopiëren. In tegenstelling tot de opdracht Kopiëren is voor de opdracht KOPIE echter een absoluut pad nodig. Dit komt omdat COPY bedoeld is voor het kopiëren van een database van een server naar een andere locatie op dezelfde server; niet naar een client computer. Het commando pwd is erg handig om het absolute pad te vinden als u niet weet waar u het bestand moet opslaan. Om met Kopiëren op het bureaublad op te slaan zou ‘Bureaublad/.csv’ worden gebruikt. Om dit met COPY te doen, moet ‘/Users//Desktop/.csv’ worden gebruikt, zoals hieronder wordt getoond:
Samenvatting
- Om een tabel of een query naar een csv-bestand te kopiëren, gebruikt u de opdracht \copy of de opdracht COPY.
- \copy moet worden gebruikt voor een kopie naar lokale systemen
- \copy gebruikt een relatief pad
- COPY moet worden gebruikt om een csv te maken aan de kant van de server.
- COPY gebruikt een absoluut pad.