Curso
Planilhas provavelmente são um dos elementos mais presentes em qualquer organização. Muitas vezes, você precisa importar uma planilha importante para um servidor de banco de dados para poder consultá-la de forma eficiente. Neste tutorial, você vai aprender como fazer isso no PostgreSQL.
Este tutorial parte do princípio de que você já conhece SQL e sabe escrever consultas simples em PostgreSQL. Se você é novo em SQL, aqui vão alguns recursos que podem ajudar:
Este tutorial está dividido em duas partes principais:
- Converter uma planilha em um arquivo .csv
- Importar um arquivo .csv para um banco de dados PostgreSQL
Convertendo uma planilha em um arquivo .csv
Para começar, você vai precisar de uma planilha. Você pode criar uma planilha em qualquer editor, como Google Sheets, Microsoft Excel etc. Para aprender os fundamentos de planilhas, você pode fazer o curso Noções básicas de planilhas da DataCamp ou ler este tutorial para iniciantes. Para acompanhar este passo a passo, você pode usar esta planilha, que contém as seguintes colunas:
- ID
- Name
- Age
- Percentage Marks
A planilha tem um total de 20 registros.
Veja um recorte rápido (com as 10 primeiras linhas) da planilha: 
A planilha traz informações de alguns estudantes universitários.
Podemos inferir os prováveis tipos de dados das colunas a partir do recorte:
- ID, Age e Percentage Marks são colunas numéricas. Mais especificamente, ID e Age podem ser do tipo inteiro, e
Percentage Markspode ser do tipo float. - A coluna
Nameé do tipo texto (caractere).
A forma mais simples de importar essa planilha (ou dataset) para um banco PostgreSQL é primeiro convertê-la em um arquivo .csv e depois importá-lo no banco. CSV significa valores separados por vírgula. Isso traz duas vantagens principais:
- Arquivos .csv são muito mais leves que planilhas e, portanto, mais fáceis de lidar com pouca memória.
- O PostgreSQL tem várias utilidades nativas para trabalhar com .csv de forma eficiente.
Todo editor de planilhas permite converter para .csv. No Google Sheets, vá em: Arquivo -> Fazer download -> Valores separados por vírgulas (.csv).
Importando um arquivo .csv para um banco de dados PostgreSQL
Para importar o .csv que você acabou de criar para um banco PostgreSQL, você precisa primeiro de um banco de dados. Vamos criar um rapidamente usando a interface do pgAdmin.
Você pode criar um banco com o nome que preferir. Depois disso, crie uma tabela nesse banco para receber os registros do .csv que será importado. Vamos criar uma tabela chamada Student_Records no banco recém-criado.
CREATE TABLE Student_Records
(
ID serial NOT NULL,
Name varchar(50),
Age SMALLINT,
Percentage_Marks float8
);
Mantivemos os tipos de dados conforme discutido acima e, por conveniência, mantivemos os mesmos nomes de colunas. Agora, no pgAdmin, navegue até a tabela que você acabou de criar, clique com o botão direito e selecione Import nas opções. Para referência: https://www.loom.com/share/2eeb1a2c94bf4f928c3ffa5b1b72eef4.
Você pode ignorar os erros que ocorrerem durante a importação, como visto no screencast. Para verificar se os registros foram importados corretamente, execute uma consulta select.
Agora vamos ver como fazer o mesmo pelo prompt do psql. Primeiro, trunque a tabela Student_Records com a consulta truncate table Student_Records;.
Abra o prompt do psql, que deve se parecer com isto: 
Em seguida, mude para o banco que você criou para a importação da planilha. No PostgreSQL, você pode alternar de banco com o comando:
\c database_name
Se der certo, o prompt do psql mudará para o nome do banco especificado. Agora, execute o comando abaixo para importar o arquivo .csv para a tabela Students_Records:
COPY Student_Records(ID,Name,Age,Percentage_Marks) FROM 'D:\Students.csv' DELIMITER ',' CSV HEADER;
Em seguida, execute uma consulta select para conferir se a importação ocorreu corretamente.
Você pode saber mais sobre o comando COPY nesta página e explorar suas diferentes opções.
Conclusão
É isso! Agora você já sabe importar uma planilha para o PostgreSQL e fazer suas análises como faria com qualquer tabela SQL.
