Articles

Importar un archivo CSV a una tabla PostgreSQL

Posted on

Resumen: en este tutorial, mostraremos varias formas de importar un archivo CSV a una tabla PostgreSQL.

Primero, crea una nueva tabla llamada persons con las siguientes columnas:

  • id: el id de la persona
  • first_name: el nombre
  • last_name: el apellido
  • dob la fecha de nacimiento
  • email: la dirección de correo electrónico
CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), dob DATE, email VARCHAR(255), PRIMARY KEY (id))
Code language: SQL (Structured Query Language) (sql)
posgresql import csv

En segundo lugar, prepara un archivo de datos CSV con el siguiente formato:

datos CSV
archivo CSV

La ruta del archivo CSV es la siguiente: C:\sampledb\persons.csv

Abajo las personas.Archivo csv

Importar un archivo CSV a una tabla utilizando la sentencia COPY

Para importar este archivo CSV a la tabla persons, se utiliza la sentencia COPY de la siguiente manera:

COPY persons(first_name, last_name, dob, email)FROM 'C:\sampledb\persons.csv'DELIMITER ','CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

PostgreSQL devuelve el siguiente mensaje:

COPY 2
Code language: Shell Session (shell)

Significa que se han copiado dos filas. Vamos a comprobar la tabla persons.

SELECT * FROM persons;
Code language: SQL (Structured Query Language) (sql)

Funciona como se esperaba.

Vamos a profundizar en la sentencia COPY con más detalle.

En primer lugar, se especifica la tabla con los nombres de las columnas después de la palabra clave COPY. El orden de las columnas debe ser el mismo que el del archivo CSV. En caso de que el archivo CSV contenga todas las columnas de la tabla, no es necesario especificarlas explícitamente, por ejemplo:

COPY sample_table_nameFROM 'C:\sampledb\sample_data.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

En segundo lugar, se pone la ruta del archivo CSV después de la palabra clave FROM. Dado que se utiliza el formato de archivo CSV, es necesario especificar las cláusulas DELIMITER así como CSV.

En tercer lugar, especifica la palabra clave HEADER para indicar que el archivo CSV contiene un encabezado. Cuando el comando COPY importa los datos, ignora la cabecera del archivo.

Tenga en cuenta que el archivo debe ser leído directamente por el servidor PostgreSQL, no por la aplicación cliente. Por lo tanto, debe ser accesible por la máquina del servidor PostgreSQL. Además, es necesario tener acceso de superusuario para poder ejecutar la sentencia COPY con éxito.

Importar un archivo CSV a una tabla utilizando pgAdmin

En caso de que necesite importar un archivo CSV desde su ordenador a una tabla del servidor de bases de datos PostgreSQL, puede utilizar el pgAdmin.

La siguiente sentencia trunca la tabla persons para que pueda volver a importar los datos.

TRUNCATE TABLE persons RESTART IDENTITY;
Code language: SQL (Structured Query Language) (sql)

Primero, haga clic con el botón derecho en la tabla persons y seleccione el elemento de menú Importar/Exportar…:

En segundo lugar, (1) cambia a importar, (2) navegar hasta el archivo de importación, (3) seleccionar el formato como CSV, (4) seleccionar el delimitador como coma (,):

En tercer lugar, haz clic en la pestaña de columnas, desmarca la columna id y haz clic en el botón Aceptar:

Por último, espera a que se complete el proceso de importación. A continuación se muestra el diálogo que te informa del progreso de la importación:

En este tutorial, has aprendido a importar datos de un archivo CSV a una tabla del servidor de bases de datos PostgreSQL utilizando la sentencia COPY y la herramienta pgAdmin.

  • ¿Ha sido útil este tutorial?
  • SíNo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *