Resumo: neste tutorial, mostraremos várias formas de importar um ficheiro CSV para uma tabela PostgreSQL.
P>Primeiro, crie uma nova tabela chamada persons
com as seguintes colunas:
-
id
: a pessoa id -
first_name
: primeiro nome -
last_name:
último nome -
dob
data de nascimento -
email
: o endereço de e-mail
Code language: SQL (Structured Query Language) (sql)CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), dob DATE, email VARCHAR(255), PRIMARY KEY (id))
Segundo, preparar um ficheiro de dados CSV com o seguinte formato:
O caminho do ficheiro CSV é o seguinte: C:\sampledb\persons.csv
Downlo the persons.csv file
Importar um ficheiro CSV para uma tabela utilizando a declaração COPY
Para importar este ficheiro CSV para a tabela persons
, usa-se COPY
declaração como se segue:
Code language: SQL (Structured Query Language) (sql)COPY persons(first_name, last_name, dob, email)FROM 'C:\sampledb\persons.csv'DELIMITER ','CSV HEADER;
PostgreSQL devolve a seguinte mensagem:
Code language: Shell Session (shell)COPY 2
Significa que foram copiadas duas filas. Vamos verificar o persons
tabela.
Code language: SQL (Structured Query Language) (sql)SELECT * FROM persons;
Funciona como esperado.
Div>Div>Div>Div>COPY
Primeiro, especificar a tabela com nomes de coluna após a palavra-chave COPY
. A ordem das colunas deve ser a mesma que a do ficheiro CSV. Caso o ficheiro CSV contenha todas as colunas da tabela, não precisa de as especificar explicitamente, por exemplo:
Code language: SQL (Structured Query Language) (sql)COPY sample_table_nameFROM 'C:\sampledb\sample_data.csv' DELIMITER ',' CSV HEADER;
segundo, coloca o caminho do ficheiro CSV após a FROM
palavra-chave. Porque o formato de ficheiro CSV é utilizado, é necessário especificar DELIMITER
assim como CSV
clauses.
Third, especificar o HEADER
keyword para indicar que o ficheiro CSV contém um cabeçalho. Quando o comando COPY
importa dados, ignora o cabeçalho do ficheiro.
Notificação de que o ficheiro deve ser lido directamente pelo servidor PostgreSQL, e não pela aplicação cliente. Por conseguinte, deve ser acessível pela máquina do servidor PostgreSQL. Além disso, é necessário ter acesso de superutilizador para executar a declaração COPY
com sucesso.
Importar ficheiro CSV para uma tabela usando pgAdmin
Caso necessite de importar um ficheiro CSV do seu computador para uma tabela no servidor de base de dados PostgreSQL, pode usar a pgAdmin.
A seguinte declaração truncata a tabela persons
para que possa reimportar os dados.
Code language: SQL (Structured Query Language) (sql)TRUNCATE TABLE persons RESTART IDENTITY;
P>Primeiro, clique com o botão direito do rato na tabela persons
e seleccione o item de menu Importar/Exportar..:
Segundo, (1) mudar para importação, (2) navegar para o ficheiro de importação, (3) seleccionar o formato como CSV, (4) seleccionar o delimitador como vírgula (,
):
/3, clique no separador de colunas, desmarque a coluna id, e clique no botão OK:
Finalmente, aguarde que o processo de importação esteja concluído. O seguinte mostra o diálogo que o informa sobre o progresso da importação:
Neste tutorial, aprendeu como importar dados de um ficheiro CSV para uma tabela no servidor de base de dados PostgreSQL utilizando a ferramenta COPY
declaração e pgAdmin.