Présentation
PostgreSQL (ou Postgres ) est un système de gestion de base de données relationnelle objet similaire à MySQL, mais prend en charge des fonctionnalités et une stabilité améliorées. Une excellente fonctionnalité est que vous pouvez exporter une table Postgres vers un .CSV dossier. Cela peut être particulièrement utile lors du transfert d'une table vers un autre système ou de son importation dans une autre application de base de données.
Dans ce didacticiel, vous apprendrez à exporter une table Postgres vers un fichier .CSV à l'aide de \copy
et COPY
commandes.
Prérequis
- PostgreSQL installé sur le système
- Une base de données existante dans PostgreSQL
- Une fenêtre de terminal/ligne de commande (Ctrl+Alt+T)
Avant de commencer avec PostgreSQL
Postgres peut être installé sur Windows, Mac, Linux, et il peut même être déployé dans un conteneur Docker. Ce guide vous guide tout au long de la procédure à l'aide d'Ubuntu Linux. Cependant, toutes les commandes d'exportation peut être utilisé dans tout autre système d'exploitation pris en charge.
Si vous n'avez pas Postgres, vous pouvez l'installer en téléchargeant le logiciel depuis le site Web du développeur. Installez Postgres sur Ubuntu à partir des référentiels par défaut en saisissant ce qui suit :
sudo apt-get install postgresql
Une fois le service démarré, vous devez créer ou importer une base de données.
Exporter les données du tableau vers .CSV avec la commande COPY
Dans psql, il existe deux commandes différentes.
L'utilisation de base du COPY
commande est la suivante :
COPY db_name TO [/path/to/destination/db_name.csv] DELIMITER ‘,’ CSV HEADER;
Remplacez db_name
avec le nom réel de votre base de données et le /path/to/destination
avec l'emplacement réel où vous souhaitez stocker le fichier .CSV.
Par exemple, sous Windows, vous pouvez enregistrer une copie dans C:\tmp\db_name.csv . Sous Linux, le chemin par défaut pourrait être /tmp/db_name.csv . Ensuite, vous pouvez ouvrir le fichier .CSV et voir le contenu du tableau répertorié dans un format légèrement différent. Vous pouvez voir la différence dans l'exemple ci-dessous.
Tout d'abord, nous listons le contenu d'une table spécifiée dans le shell psql avec la commande :
SELECT * FROM [table_name]
La sortie affiche les valeurs dans notre exemple de tableau comme dans l'image ci-dessous :
Vous pouvez maintenant le comparer à son fichier .CSV correspondant. Les données exportées de la table mentionnée précédemment apparaissent dans un fichier .CSV, comme illustré dans l'image suivante :
Exporter des colonnes spécifiques du tableau vers .CSV
Vous pouvez utiliser le COPY
commande pour cibler des colonnes spécifiques :
COPY [db_name](column1,column2,column3) TO [/path/to/destination/db_name_partial.csv] DELIMITER ‘,’ CSV HEADER;
Exporter les données du tableau vers .CSV avec la commande \copy
Utilisez le \copy
commande lorsque vous travaillez à distance. Il vous permet d'exporter des données d'un serveur vers un fichier .CSV sur une machine cliente locale. Utilisez-le comme suit :
\copy (SELECT * FROM [db_name]) to [/path/to/destination] CSV HEADER
Remplacez db_name
avec le nom de la base de données source. Remplacez /path/to/destination
avec l'emplacement réel du fichier .CSV. Sous Windows, vous pouvez exporter vers C:tmpdb_name.csv . Sous Linux, vous pouvez exporter vers /tmp/db_name.csv .
Le \copy
La commande nécessite uniquement des privilèges élevés pour le système client. Ceci est utile si vous ne disposez pas de privilèges suffisants pour exécuter le COPY
commande sur le serveur. De plus, le \copy
La commande vous permet d'utiliser un chemin relatif.
Par exemple, vous pouvez spécifier desktop/db_name.csv sur un système Windows, et il serait enregistré sur le bureau de l'utilisateur actuel.