Samenvatting: in deze tutorial leert u verschillende technieken om gegevens uit PostgreSQL tabellen te exporteren naar CSV bestanden.
In de vorige tutorial hebben we laten zien hoe u gegevens uit een CSV bestand kunt importeren in een tabel. We zullen de persons
tabel gebruiken die we hebben gemaakt voor het importeren van gegevens uit een CSV-bestand.
Laten we de gegevens van de persons
tabel controleren.
Code language: SQL (Structured Query Language) (sql)SELECT*FROMpersons;
We hebben twee records in de tabel.
Exporteren van gegevens van een tabel naar CSV met behulp van KOPIEER verklaring
De eenvoudigste manier om gegevens van een tabel naar een CSV-bestand te exporteren is door gebruik te maken van COPY
verklaring. Als u bijvoorbeeld de gegevens van de tabel persons
wilt exporteren naar een CSV-bestand met de naam persons_db.csv
in de map C:\tmp
, dan kunt u het volgende statement gebruiken:
Code language: SQL (Structured Query Language) (sql)COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
PostgreSQL exporteert alle gegevens van alle kolommen van de persons
tabel naar het persons_db.csv
bestand.
In sommige gevallen wilt u gegevens uit slechts enkele kolommen van een tabel naar een CSV-bestand exporteren. Om dit te doen, specificeert u de kolomnamen samen met de tabelnaam na het COPY
sleutelwoord. Bijvoorbeeld, het volgende statement exporteert gegevens van de first_name
last_name
, en email
kolommen van de persons
tabel naar person_partial_db.csv
Code language: SQL (Structured Query Language) (sql)COPY persons(first_name,last_name,email) TO 'C:\tmp\persons_partial_db.csv' DELIMITER ',' CSV HEADER;
Als u de koptekst niet wilt exporteren, die de kolomnamen van de tabel bevat, verwijdert u gewoon de vlag HEADER
in het COPY
statement. Het volgende statement exporteert alleen gegevens uit de email
kolom van de persons
tabel naar een CSV bestand.
Code language: SQL (Structured Query Language) (sql)COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;
Merk op dat de CSV-bestandsnaam die u opgeeft in het COPY
-commando rechtstreeks door de server moet worden geschreven. Dit betekent dat het CSV-bestand op de database server moet staan, niet op uw lokale machine. Het CSV bestand moet ook beschrijfbaar zijn door de gebruiker als wie de PostgreSQL server draait.
Exporteren van gegevens uit een tabel naar een CSV bestand met behulp van het \copy commando
In het geval dat u toegang heeft tot een externe PostgreSQL database server, maar u heeft niet voldoende rechten om daarop naar een bestand te schrijven, dan kunt u het PostgreSQL ingebouwde commando \copy
gebruiken.
Het \copy
commando voert in principe het COPY
statement hierboven uit. Echter, in plaats van dat de server het CSV bestand schrijft, schrijft psql het CSV bestand, en zet de gegevens van de server over naar je lokale bestandssysteem. Om \copy
commando te gebruiken, hoeft u alleen maar voldoende privileges te hebben op uw lokale machine. Het vereist geen PostgreSQL superuser rechten.
Als u bijvoorbeeld alle gegevens van de persons
tabel naar een persons_client.csv
bestand wilt exporteren, kunt u het \copy
commando als volgt vanuit de psql client uitvoeren:
Code language: SQL (Structured Query Language) (sql)\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
In deze tutorial hebben we u laten zien hoe u COPY
statement en \copy
commando kunt gebruiken om gegevens uit een tabel naar CSV-bestanden te exporteren.
- Was deze handleiding nuttig?
- Ja/Nee