PostgreSQL do zero: guia completo para iniciantes
Aprenda PostgreSQL do zero: o que é, como instalar no Windows, primeiros comandos SQL e como integrar com C#/.NET. Guia prático para devs iniciantes.

PostgreSQL é o banco de dados que vai aparecer em praticamente toda vaga backend no Brasil. Nubank roda sobre ele. iFood também. Instagram usou PostgreSQL por anos antes de fragmentar em outros sistemas. Mas pra quem está começando, a pergunta é mais simples: o que diabos é isso e como eu uso?
Resposta direta: PostgreSQL é um lugar pra guardar dados de forma organizada, e você faz isso escrevendo SQL, uma linguagem de quatro palavras-chave que você aprende em uma tarde.
Neste guia você vai sair do zero absoluto e escrever seus primeiros comandos reais.
O que é PostgreSQL (sem enrolação)
PostgreSQL é um banco de dados relacional. Isso significa que os dados ficam em tabelas, como planilhas do Excel, só que com regras rigorosas e capacidade de lidar com milhões de registros sem travar.
Você cria uma tabela usuarios, define que ela tem colunas id, nome e email, e aí insere linhas. Depois busca as linhas com o comando SELECT. É isso. O resto é detalhe.
O que diferencia o PostgreSQL de concorrentes como MySQL ou SQLite:
- Suporte completo ao padrão SQL ANSI (MySQL ignora vários pontos do padrão)
- Tipos de dados avançados: JSON, arrays, dados geográficos
- Transações confiáveis com controle MVCC (múltiplos leitores não bloqueiam escritores)
- Open source sem pegadinha, sem versão "enterprise" necessária pra recursos básicos
A versão atual é o PostgreSQL 17, lançado em setembro de 2024, com melhorias em performance e streaming de replicação.
Como instalar o PostgreSQL no Windows
O caminho mais simples é o instalador gráfico do EDB (EnterpriseDB), empresa que mantém builds oficiais para Windows.
Passo 1: acesse postgresql.org/download/windows e baixe o instalador da versão mais recente (17.x).
Passo 2: execute o .exe como administrador. O assistente vai perguntar:
- Qual diretório instalar (o padrão tá bom)
- Quais componentes instalar: mantenha
PostgreSQL Server,pgAdmin 4, eCommand Line Tools - Qual porta usar: padrão
5432, não mude - Senha do usuário
postgres: anote essa senha, você vai precisar dela
Passo 3: depois da instalação, o serviço do PostgreSQL já sobe automaticamente como Windows Service. Você pode verificar no Gerenciador de Tarefas, em Serviços, procurando postgresql-x64-17.
Pronto. Banco instalado.

Conectar usando pgAdmin
O pgAdmin é a interface gráfica que veio junto com a instalação. Abra pelo menu Iniciar.
Na primeira vez, ele pede uma senha master (pra proteger as senhas salvas no pgAdmin). Depois você vai ver o painel com Servers na árvore à esquerda.
Clique em Servers -> PostgreSQL 17. Ele vai pedir a senha do usuário postgres, a que você definiu na instalação. Confirme.
Aí aparecem os bancos padrão: postgres, template0, template1. Esses são internos do sistema e você não vai trabalhar neles.
Pra executar SQL, clique com o botão direito no servidor e escolha Query Tool. Uma aba de editor abre. É aqui que você vai digitar os comandos.
Se preferir algo mais leve, o DBeaver é uma alternativa gratuita que conecta a qualquer banco (MySQL, SQLite, SQL Server) com a mesma interface, útil quando você trabalha com múltiplos bancos no dia a dia.
Primeiros comandos SQL
Aqui começa a parte prática. Execute cada bloco no Query Tool do pgAdmin.
Criar um banco de dados
CREATE DATABASE loja;
Pra trocar pra esse banco, feche o Query Tool atual, expanda Databases na árvore, clique com o botão direito em loja e abra o Query Tool.
Criar uma tabela
CREATE TABLE produtos (
id SERIAL PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
preco NUMERIC(10, 2) NOT NULL,
estoque INTEGER DEFAULT 0
);
O que cada coisa faz:
SERIAL PRIMARY KEY: inteiro que se incrementa sozinho (1, 2, 3...). Nada de gerar ID manualmente, e garante unicidade.VARCHAR(100): texto de até 100 caracteres.NUMERIC(10, 2): número com 2 casas decimais, ideal para preços.DEFAULT 0: se você não informar o estoque, assume zero.
Inserir dados
INSERT INTO produtos (nome, preco, estoque)
VALUES
('Teclado Mecânico', 349.90, 15),
('Mouse Sem Fio', 129.50, 42),
('Monitor 24"', 1299.00, 7);
Note que não informamos o id. O SERIAL cuida disso.
Consultar dados
SELECT * FROM produtos;
O * retorna todas as colunas. Mas na prática, especifique o que você precisa:
SELECT nome, preco FROM produtos;
Trafega menos dado e fica mais claro no código.
Filtros: WHERE, ORDER BY, LIMIT
Com três cláusulas você resolve 80% das consultas do dia a dia.
Filtrando com WHERE
SELECT nome, preco
FROM produtos
WHERE preco < 500;
Retorna só os produtos com preço menor que R$500. Dá pra combinar condições:
SELECT nome, preco, estoque
FROM produtos
WHERE preco < 500 AND estoque > 10;
Ordenando com ORDER BY
SELECT nome, preco
FROM produtos
ORDER BY preco DESC;
DESC traz do maior pro menor. ASC (padrão) traz do menor pro maior.
Limitando com LIMIT
SELECT nome, preco
FROM produtos
ORDER BY preco DESC
LIMIT 2;
Esse SELECT traz os 2 produtos mais caros. Útil pra paginação e pra não travar a aplicação buscando 100.000 registros de uma vez.

UPDATE e DELETE
Pra completar o ciclo básico:
UPDATE produtos
SET estoque = estoque - 1
WHERE id = 1;
DELETE FROM produtos
WHERE estoque = 0;
Atenção: DELETE sem WHERE apaga tudo da tabela. Sempre revise a condição antes de executar.
PostgreSQL no stack C#/.NET
Se você está aprendendo C# e .NET, o PostgreSQL vai aparecer em praticamente todo projeto backend. A combinação mais comum é:
- Npgsql: driver baixo-nível que fala diretamente com o PostgreSQL
- Entity Framework Core + Npgsql: ORM que mapeia classes C# para tabelas, cuida de migrations e abstrai o SQL no dia a dia
Um exemplo simples com EF Core:
// Program.cs (minimal API)
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<LojaContext>(opt =>
opt.UseNpgsql("Host=localhost;Database=loja;Username=postgres;Password=suasenha"));
var app = builder.Build();
app.MapGet("/produtos", async (LojaContext db) =>
await db.Produtos.ToListAsync());
app.Run();
Você define a LojaContext com um DbSet<Produto>, roda dotnet ef migrations add Initial e dotnet ef database update, e o EF cria as tabelas automaticamente a partir das suas classes C#.
Mas antes de usar o EF, entender SQL puro é essencial. Muitos bugs em sistemas com ORM aparecem porque o dev não sabe o que o ORM está gerando. Quem sabe SQL lê o log de queries e entende na hora.
Aprenda PostgreSQL com profundidade
Do SQL básico a queries avançadas, joins, índices e integração com .NET. Acesso vitalício.
Ver cursosSe você tá seguindo o roadmap para a primeira vaga como dev .NET, PostgreSQL é uma das habilidades que as empresas esperam de um júnior, junto com C# e lógica. Faz parte do pacote.
Próximos passos
Com os comandos acima você já consegue criar tabelas, inserir dados e fazer consultas filtradas. Isso é suficiente pra um CRUD simples.
Mas SQL tem profundidade real. O que normalmente vem depois:
JOINs: como relacionar tabelas. Uma tabela pedidos com uma coluna usuario_id que aponta pra tabela usuarios. O INNER JOIN conecta as duas na consulta.
Índices: sem índice, o PostgreSQL lê toda a tabela pra encontrar um registro. Com índice na coluna certa, a busca vira O(log n). Tabelas grandes sem índice são a causa número 1 de query lenta.
Transactions: operações que precisam acontecer juntas ou não acontecer. Um PIX debita de uma conta e credita na outra. Se uma falha, a outra precisa ser desfeita. O BEGIN / COMMIT / ROLLBACK cuida disso.
EXPLAIN ANALYZE: ferramenta que mostra o plano de execução de uma query. Indispensável quando algo tá lento.
A documentação oficial do PostgreSQL é uma das melhores de qualquer software open source. Vale bookmarkar.
Se você quer uma sequência organizada que vai do zero até esses tópicos avançados, o curso completo de PostgreSQL cobre tudo com projetos práticos e integração com C#/.NET.
Perguntas frequentes
PostgreSQL roda no Linux? Sim, e na maioria das vezes você vai usar PostgreSQL em servidores Linux em produção. A instalação é um apt install postgresql no Ubuntu/Debian. No Windows é mais prático pra desenvolvimento local.
Qual a versão certa pra usar? PostgreSQL 16 ou 17. Versões antigas (9.x, 10.x) ainda aparecem em sistemas legados, mas pra aprendizado e projetos novos use sempre a mais recente.
Preciso do pgAdmin ou dá pra usar só o terminal? Dá pra usar o psql (cliente de terminal que vem com a instalação). Pra quem gosta de linha de comando, é poderoso. Mas pra quem tá começando, o pgAdmin ou DBeaver são mais amigáveis.
Se você ainda não configurou seu ambiente de desenvolvimento completo, veja como configurar o ambiente no Windows com Visual Studio e .NET, o próximo passo natural depois de ter o banco funcionando. E se quiser entender melhor onde o PostgreSQL se encaixa no contexto de aprender C# e .NET, o artigo de referência explica o stack completo.