Introducción
PostgreSQL (o Postgres ) es un sistema de administración de base de datos relacional de objetos similar a MySQL pero admite funcionalidad y estabilidad mejoradas. Una característica excelente es que puede exportar una tabla de Postgres a un .CSV expediente. Esto puede ser especialmente útil al transferir una tabla a un sistema diferente o importarla a otra aplicación de base de datos.
En este tutorial, aprenderá cómo exportar una tabla de Postgres a un archivo .CSV usando \copy
y COPY
comandos.
Requisitos previos
- PostgreSQL instalado en el sistema
- Una base de datos existente en PostgreSQL
- Una ventana de terminal/línea de comandos (Ctrl+Alt+T)
Antes de comenzar con PostgreSQL
Postgres se puede instalar en Windows, Mac, Linux e incluso se puede implementar dentro de un contenedor Docker. Esta guía lo guía a través del procedimiento usando Ubuntu Linux. Sin embargo, todos los comandos de exportación se puede usar en cualquier otro sistema operativo compatible.
Si no tiene Postgres, puede instalarlo descargando el software del sitio web del desarrollador. Instale Postgres en Ubuntu desde los repositorios predeterminados ingresando lo siguiente:
sudo apt-get install postgresql
Una vez que se inicia el servicio, debe crear o importar una base de datos.
Exportar datos de la tabla a .CSV con el comando COPY
En psql hay dos comandos diferentes.
El uso básico de COPY
El comando es el siguiente:
COPY db_name TO [/path/to/destination/db_name.csv] DELIMITER ‘,’ CSV HEADER;
Reemplazar db_name
con el nombre real de su base de datos y el /path/to/destination
con la ubicación real en la que desea almacenar el archivo .CSV.
Por ejemplo, en Windows, es posible que desee guardar una copia en C:\tmp\db_name.csv . En Linux, la ruta predeterminada podría ser /tmp/db_name.csv . Luego, puede abrir el archivo .CSV y ver el contenido de la tabla en un formato ligeramente diferente. Puede ver la diferencia en el siguiente ejemplo.
Primero, listamos el contenido de una tabla específica en el shell psql con el comando:
SELECT * FROM [table_name]
La salida muestra los valores dentro de nuestra tabla de ejemplo como en la imagen a continuación:
Ahora puede compararlo con su archivo .CSV correspondiente. Los datos exportados de la tabla mencionada anteriormente aparecen en un archivo .CSV, como se ve en la siguiente imagen:
Exportar columnas específicas de la tabla a .CSV
Puedes usar el COPY
comando para apuntar a columnas específicas:
COPY [db_name](column1,column2,column3) TO [/path/to/destination/db_name_partial.csv] DELIMITER ‘,’ CSV HEADER;
Exportar datos de la tabla a .CSV con el comando \copy
Usa el \copy
Comando cuando se trabaja de forma remota. Le permite exportar datos desde un servidor a un archivo .CSV en una máquina cliente local. Úselo de la siguiente manera:
\copy (SELECT * FROM [db_name]) to [/path/to/destination] CSV HEADER
Reemplazar db_name
con el nombre de la base de datos de origen. Reemplazar /path/to/destination
con la ubicación real del archivo .CSV. En Windows, puede exportar a C:tmpdb_name.csv . En Linux, puede exportar a /tmp/db_name.csv .
El \copy
El comando solo requiere privilegios elevados para el sistema cliente. Esto es útil si no tiene privilegios suficientes para ejecutar COPY
comando en el servidor. Además, el \copy
El comando le permite usar una ruta relativa.
Por ejemplo, podría especificar desktop/db_name.csv en un sistema Windows, y se guardaría en el escritorio del usuario actual.