Exporter une table PostgreSQL vers un fichier CSV

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.

posgresql export csv

Vérifions les données de la table persons.

SELECT*FROMpersons;
Code language: SQL (Structured Query Language) (sql)
posgresql import csv from pgAdmin tool persons table

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 :

COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

PostgreSQL exporte toutes les données de toutes les colonnes de la table persons vers le fichier persons_db.csv.

postgresql export 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_namelast_name, et email colonnes du tableau persons vers person_partial_db.csv

COPY persons(first_name,last_name,email) TO 'C:\tmp\persons_partial_db.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)
postgresql export csv partiellement

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.

COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;
Code language: SQL (Structured Query Language) (sql)
postgresql export csv partially without header

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 :

\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
Code language: SQL (Structured Query Language) (sql)

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

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *