Volver a la lista de artículos Artículos
Lectura de 7 minutos

Cómo Importar CSVs a PostgreSQL Usando PgAdmin

¿Trabaja con datos y utiliza archivos CSV? Aquí tienes una guía práctica sobre cómo importar dichos archivos a una base de datos PostgreSQL utilizando pgAdmin, uno de los mejores editores PostgreSQL del mercado.

Entremos de lleno en la importación de CSVs a una base de datos Postgres. Comenzaremos explicando qué es un archivo CSV, luego le presentaremos pgAdmin y le mostraremos cómo realizar el proceso de importación. No se preocupe - ¡es fácil!

¿Qué es un archivo CSV?

CSV es la abreviatura de valores separados por comas. Es un formato para almacenar datos en archivos de texto. Este estándar es compatible con muchas aplicaciones y programas, como Microsoft Office, LibreOffice y Google Sheets.

¿Por qué importar archivos CSV en una base de datos?

¿Cuándo se utilizan los archivos CSV? La transferencia de datos de un programa o plataforma a otra es uno de los usos principales. Imagina que necesitas exportar datos de una base de datos a una hoja de cálculo o viceversa. Los CSV son la forma más segura de guardar los datos; los leen casi todas las suites ofimáticas y los sistemas de gestión de bases de datos (SGBD). Además, los CSV son archivos de texto y, por tanto, bastante pequeños; transferir incluso grandes conjuntos de datos no supone ningún problema. Esta es una gran ventaja de los CSV.

Eche un vistazo a las diferencias entre almacenar datos en una tabla y almacenarlos en un CSV. Aquí tienes una tabla llamada characters. Me pregunto si reconoces los datos que he puesto ahí.

IDfirst_namelast_namefamily
1JohnSnowTargaryen
2AryaStarkStark
3TyrionLannisterLannister

Aquí tienes la misma información en formato CSV:

ID,first_name,last_name,family
1,John,Snow,Targaryen
2,Arya,Stark,Stark
3,Tyrion,Lannister,Lannister

Se trata de un conjunto de datos muy pequeño, pero puedes imaginarte cómo sería con muchas columnas y miles de filas. Creo que ya entiendes los usos y ventajas de los CSV, así que pasemos a la herramienta que usaremos para importarlos: pgAdmin.

PostgreSQL y pgAdmin

Hace un tiempo, mi amigo Ignacio os enseñó a instalar y configurar PostgreSQL en Windows 10. Si has leído ese artículo, sabrás que Postgres es fácil de configurar y uno de los SGBD más populares del mundo.

Hay toneladas de diferentes editores SQL en el mercado que soportan PostgreSQL. Yo me acostumbré a pgAdmin y honestamente no veo ningún punto en cambiar a otra cosa. Es una gran herramienta que nunca me ha fallado.

¿Qué es pgAdmin? Es un programa gráfico de administración de bases de datos PostgreSQL. Su última versión es pgAdmin 4. Se puede utilizar en Linux, Unix, macOS o Windows, y como es de código abierto, es gratuito. Este será un argumento importante para muchas personas. Funcionalidad completa y sin cargos hacen que pgAdmin sea perfecto para mí. Y quizás para ti también.

PgAdmin le permite administrar bases de datos y sus réplicas, crear todos los objetos de base de datos, emitir consultas y analizar el plan de consultas (presentado en forma clásica o gráfica). También puedes utilizar la consola clásica para escribir en ella. Además, hay muchas extensiones que le permiten adaptar libremente el programa a sus necesidades.

Algunas alternativas a pgAdmin son DBeaver, Navicat, HeidiSQL y OmniDB. Si quieres que dedique un artículo a los distintos editores SQL que existen -incluyendo los de bases de datos PostgreSQL- házmelo saber en los comentarios.

Asumo que ya tienes Postgres y pgAdmin instalados en tu ordenador y que los tienes configurados adecuadamente. Ahora podemos ponernos manos a la obra e importar algunos datos.

Cómo importar CSVs a PostgreSQL

Volvamos a nuestro archivo characters.csv e intentemos importarlo a nuestra base de datos a través de pgAdmin. Hay dos métodos, y te mostraré que hacer paso a paso.

1. Crear una Tabla en pgAdmin

Usando la Herramienta de Consulta interna en pgAdmin, puedes primero crear una tabla con una consulta SQL:

CREATE TABLE characters 
(id serial, 
first_name varchar, 
last_name varchar, 
family varchar
);

Asegúrese de que las columnas tienen los mismos nombres y valores que las del archivo CSV.

En lugar de escribir una consulta SQL, también puede hacer clic con el botón derecho en Tablas en el árbol de la izquierda. Aparecerá un breve menú. Seleccione Crear y luego Tabla....

Cómo importar CSVs a PostgreSQL usando PgAdmin

Aparecerá una nueva ventana pidiéndole que introduzca un nombre para la nueva tabla. En nuestro caso, será characters.

Cómo importar CSVs a PostgreSQL usando PgAdmin

En la misma ventana, haz clic en la pestaña Columnas y añade las columnas adecuadas haciendo clic en el botón +. Recuerda que los nombres de las columnas deben coincidir con los del archivo CSV. También tendrás que especificar el tipo de datos que contendrá cada columna.

Si no sabes qué tipos de datos introducir, te recomiendo que sigas el curso LearnSQL.es Tipos de datos en SQL . Es mejor aprender lo básico y evitar cometer errores. Ya sabemos qué datos queremos incluir en cada columna, así que todo debería tener este aspecto:

Cómo importar CSVs a PostgreSQL usando PgAdmin

Observa que aquí también puedes establecer que la columna no sea NULL y especificar una clave primaria. Si haces clic en SQL, podrás ver la consulta SQL utilizada para crear la tabla. Por ahora, no nos preocuparemos de las otras funciones (más avanzadas).

Cuando haya terminado, haga clic en Guardar. Acaba de crear una tabla. Si no la ves en el árbol, haz clic con el botón derecho en Tablas y selecciona Actualizar. Debería aparecer.

2. Importar el archivo CSV

De nuevo, puede utilizar la Herramienta de consulta y escribir una consulta SQL. Para ello, utilice la sentencia COPY:

COPY characters
FROM 'C:\a\characters.csv' 
DELIMITER ',' 
CSV HEADER;

En la primera línea, introduzca el nombre de su tabla. En la segunda línea (después de la cláusula FROM ), introduzca la ruta a su archivo. En mi caso, es la unidad C y la carpeta a. Importante: debes especificar el carácter DELIMITERque es el carácter utilizado para separar los valores en el archivo CSV. Suele ser una coma, pero puede ser un punto y coma, un espacio u otra cosa.

Por último, utilice la palabra clave HEADER para omitir la cabecera (es decir, la fila que contiene los nombres de las columnas) al copiar los datos del CSV.

Cómo importar CSVs a PostgreSQL usando PgAdmin

En nuestro caso, el resultado es un mensaje COPY 3. Esto significa que pgAdmin ha copiado tres filas en nuestra tabla. Introduzcamos una consulta sencilla para comprobar que todo ha funcionado:

SELECT * FROM characters;
Cómo importar CSVs a PostgreSQL usando PgAdmin

Por supuesto, como en el caso de la creación de una tabla y de la importación de datos desde un archivo CSV, podemos omitir la consulta y utilizar el propio programa. Para ello, basta con hacer clic con el botón derecho del ratón sobre la tabla en el árbol de la izquierda y seleccionar la opción de menú Importar/Exportar....

Cómo importar CSVs a PostgreSQL usando PgAdmin

Aparecerá una ventana con el control deslizante en Importar. A continuación, seleccione el archivo de origen y establezca el formato en CSV. Si el archivo tiene encabezado, configúrelo como . Sólo queda seleccionar el delimitador (normalmente una coma). La ventana debería tener este aspecto:

Cuando hagas clic en OK, los datos se importarán. ¡Y tu tabla está lista! Ahora puedes escribir consultas SQL y analizar datos, combinar datos de otras tablas, etc. ¡Bienvenida al otro lado del espejo, Alicia! Has seguido con éxito al Conejo Blanco.

Bueno, ¡importar un archivo CSV a una base de datos Postgres fue fácil!

Así de simple es importar datos de un archivo CSV a una base de datos PostgreSQL con pgAdmin. Hay dos formas de hacerlo - usando el programa mismo, y usando SQL en la Herramienta de Consulta y la sentencia COPY. Yo uso pgAdmin porque es una gran herramienta para trabajar con PostgreSQL. ¿Qué IDE utilizas? Cuéntanoslo en los comentarios.

Si eres un completo principiante en PostgreSQL, te animo a tomar nuestro curso SQL para principiantes en PostgreSQL o Curso completo de SQL en PostgreSQL (el tema principal para este dialecto). Estos son cursos SQL brillantes e interactivos que le enseñarán todo lo que necesita para trabajar efectivamente con bases de datos. No te quedes atrás; el mundo está apostando por PostgreSQL, incluidas muchas grandes empresas. ¿Por qué no probarlo?