PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL :exportez les données résultant de la requête SQL vers Excel/CSV

Exemple avec un nom de fichier de style Unix :

COPY (SELECT * FROM tbl) TO '/var/lib/postgres/myfile1.csv' format csv;

Lisez le manuel sur COPY (lien vers la version 8.2).
Vous devez utiliser un chemin absolu pour le fichier cible. Assurez-vous de mettre les noms de fichiers entre guillemets avec des espaces. Exemple pour MS Windows :

COPY (SELECT * FROM tbl)
TO E'"C:\\Documents and Settings\\Tech\Desktop\\myfile1.csv"' format csv;

Dans PostgreSQL 8.2 , avec standard_conforming_strings = off par défaut, vous devez doubler les barres obliques inverses, car \ est un caractère spécial et interprété par PostgreSQL. Fonctionne dans n'importe quelle version. Tout est dans le beau manuel :

nom du fichier

Le nom de chemin absolu du fichier d'entrée ou de sortie. Les utilisateurs Windows peuvent avoir besoin d'utiliser un E'' chaîne et doubles barres obliques inverses utilisées comme séparateurs de chemin.

Ou la syntaxe moderne avec standard_conforming_strings = on (par défaut depuis Postgres 9.1) :

COPY tbl  -- short for (SELECT * FROM tbl)
TO '"C:\Documents and Settings\Tech\Desktop\myfile1.csv"' (format csv);

Ou vous pouvez également utiliser des barres obliques pour les noms de fichiers sous Windows.

Une alternative consiste à utiliser la méta-commande \copy du client terminal par défaut psql .

Vous pouvez également utiliser une interface graphique comme pgadmin et copier/coller de la grille de résultats vers Excel pour les petites requêtes.

Réponse étroitement liée :

  • Copier les résultats d'une vue PostgreSQL d'une base de données vers une table d'une autre

Solution similaire pour MySQL :

  • Exporter des données MYSQL vers Excel/CSV via php