Résumé : dans ce tutoriel, vous apprendrez différentes techniques pour exporter des données de tables PostgreSQL vers des fichiers CSV.
Dans le tutoriel précédent, nous vous avons montré comment importer des données d’un fichier CSV dans une table. Nous allons utiliser la table persons
que nous avons créée pour importer des données depuis un fichier CSV.
Vérifions les données de la table persons
.
Code language: SQL (Structured Query Language) (sql)SELECT*FROMpersons;
Nous avons deux enregistrements dans la table.
Exporter les données d’une table vers un CSV en utilisant l’instruction COPY
La façon la plus simple d’exporter les données d’une table vers un fichier CSV est d’utiliser l’instruction COPY
. Par exemple, si vous voulez exporter les données de la table persons
vers un fichier CSV nommé persons_db.csv
dans le dossier C:\tmp
, vous pouvez utiliser l’instruction suivante :
Code language: SQL (Structured Query Language) (sql)COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
PostgreSQL exporte toutes les données de toutes les colonnes de la table persons
vers le fichier persons_db.csv
.
Dans certains cas, vous souhaitez exporter les données de seulement certaines colonnes d’une table vers un fichier CSV. Pour ce faire, vous spécifiez les noms des colonnes avec le nom de la table après le mot-clé COPY
. Par exemple, l’instruction suivante exporte les données des tableaux first_name
last_name
, et email
colonnes du tableau persons
vers 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;
Si vous ne voulez pas exporter l’en-tête, qui contient les noms des colonnes de la table, il suffit de supprimer le drapeau HEADER
dans l’instruction COPY
. L’instruction suivante exporte uniquement les données de la colonne email
du tableau persons
vers un fichier CSV.
Code language: SQL (Structured Query Language) (sql)COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;
Notez que le nom du fichier CSV que vous spécifiez dans la commande COPY
doit être écrit directement par le serveur. Cela signifie que le fichier CSV doit résider sur la machine du serveur de base de données, et non sur votre machine locale. Le fichier CSV doit également être accessible en écriture par l’utilisateur sous lequel le serveur PostgreSQL s’exécute.
Exporter les données d’une table vers un fichier CSV à l’aide de la commande \copy
Dans le cas où vous avez l’accès à un serveur de base de données PostgreSQL distant, mais que vous n’avez pas les privilèges suffisants pour écrire dans un fichier sur celui-ci, vous pouvez utiliser la commande intégrée PostgreSQL \copy
.
La commande \copy
exécute essentiellement l’instruction COPY
ci-dessus. Cependant, au lieu que le serveur écrive le fichier CSV, psql écrit le fichier CSV, transfère les données du serveur vers votre système de fichiers local. Pour utiliser la commande \copy
, il suffit d’avoir des privilèges suffisants sur votre machine locale. Elle ne nécessite pas les privilèges du superutilisateur de PostgreSQL.
Par exemple, si vous voulez exporter toutes les données de la table persons
dans le fichier persons_client.csv
, vous pouvez exécuter la commande \copy
depuis le client psql comme suit :
Code language: SQL (Structured Query Language) (sql)\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
Dans ce tutoriel, nous vous avons montré comment utiliser l’instruction COPY
et la commande \copy
pour exporter les données d’une table vers des fichiers CSV.
- Ce tutoriel vous a-t-il été utile ?
- OuiNon
.