Les commandes:
Pour exporter une table ou une requête au csv, utilisez l’une des commandes suivantes :
Pour l’exportation côté client :
\copy to '' csv header
Pour l’exportation côté serveur :
COPY to '' csv header;
Exemple de chemin absolu : ‘/Users/matt/Desktop/filename.csv’
Exemple de chemin relatif : ‘Desktop/filename.csv’
Mots clés :
- csv : cela indique à la commande de copie que le fichier en cours de création doit être un fichier CSV.
- header : ceci indique à la commande copy d’inclure les en-têtes en haut du document.
Utilisation des commandes
Les fichiers CSV (Comma Separated Value) sont un format utile pour stocker des données. De nombreux outils prennent en charge l’importation de données à partir de fichiers CSV car c’est un format facile à lire, en texte brut et qui ne dépend pas des métadonnées.
Dans psql, il y a deux commandes qui peuvent le faire, toutes deux légèrement différentes.
La première est la méta-commande \copy qui est utilisée pour générer un fichier CSV client. Cette commande prend la table ou les résultats de requête spécifiés et les écrit sur l’ordinateur du client.
La seconde commande, COPY, génère un fichier CSV sur le serveur où la base de données est exécutée.
La commande \copy
La méta-commande \copy est utilisée pour exporter vers un ordinateur client. Elle est utile pour copier une base de données dont l’accès peut être quelque peu restreint et pour créer une copie personnelle des données. Par exemple, un utilisateur peut vouloir générer un csv afin de pouvoir analyser des données financières dans Excel. Le format d’une \copie vers csv est le suivant:
\copy to csv header
La section peut être remplie avec une table ou une requête. Par exemple pour copier toutes les entrées d’une table, le nom de la table peut être mis ici. Pour copier toutes les entrées qui contiennent « saw » dans leur nom depuis la table des outils vers un csv, les commandes suivantes pourraient être exécutées:
Le est le chemin de l’endroit où psql enregistre actuellement les fichiers à l’endroit où vous voulez enregistrer le fichier. L’emplacement que psql enregistre actuellement peut être trouvé en utilisant la commande \!pwd.
Note : La méta-commande \ ! prend les arguments qui lui sont donnés et les exécute comme une commande bash dans psql.
La commande pwd imprime le répertoire de travail actuel. La méta-commande \ ! pwd et \ ! ls sont montrées utilisées ci-dessous:
Cela signifie que si le nom de fichier « myTools.csv » est utilisé comme , il sera enregistré dans /Users/matt/ comme on peut le voir ci-dessous:
Le fichier peut également être enregistré ailleurs en entrant un chemin relatif spécifique. Par exemple, si ‘/Desktop/.csv’ est saisi comme chemin d’accès, le fichier sera enregistré sur le bureau.
Après le chemin d’accès relatif dans la commande se trouve le texte ‘csv header;’ Ce texte fait deux choses. Le ‘csv’ spécifie que les données doivent être enregistrées au format CSV. Les autres formats possibles sont ‘texte’ et ‘binaire.’
L’en-tête’ spécifie que, lorsque les données sont copiées dans un fichier csv, les noms de chaque colonne doivent être enregistrés sur la première ligne, comme indiqué ici:
La commande COPY
La commande COPY nécessite également que l’utilisateur spécifie une table/quête à copier. Contrairement à \copy cependant, la commande COPY nécessite un chemin absolu. En effet, COPY sert à copier une base de données d’un serveur vers un autre emplacement sur le même serveur ; et non vers un ordinateur client. La commande \ ! pwd est très utile pour trouver le chemin absolu si vous ne savez pas où enregistrer le fichier. Pour enregistrer sur le bureau à l’aide de \copy, il faut utiliser ‘Desktop/.csv’. Pour le faire avec COPY, il faudrait utiliser ‘/Users//Desktop/.csv’ comme indiqué ci-dessous :
Summary
- Pour copier une table ou une requête dans un fichier csv, utilisez soit la commande \copy, soit la commande COPY.
- La commande \copy doit être utilisée pour une copie sur les systèmes locaux
- La commande \copy utilise un chemin relatif
- Copier utilise un chemin absolu.
.