QA Learning / PostgreSQL

← Todas as trilhas

Trilha PostgreSQL para QA

O mesmo e-commerce fictício da Trilha 1, agora num PostgreSQL de verdade, o banco que você mais encontra no trabalho. Cada módulo tem a teoria curta em cima e os exercícios rodando logo abaixo, num Postgres que sobe dentro da própria página (via PGlite/WebAssembly).

Se você já fez a Trilha 1

A base (SELECT, WHERE, JOIN, GROUP BY) é a mesma, e aqui ela reaparece rápido e o foco vai pro que muda no Postgres: tipos de verdade (boolean, numeric, date), contas com datas, funções de texto e as window functions. Se ainda não fez a Trilha 1, dá pra começar por aqui mesmo: os dois primeiros módulos cobrem o essencial.

Módulos

Módulo 1
Ler dados no Postgres
SELECT, WHERE, ORDER BY, LIMIT/OFFSET, aspas, cast com ::
Módulo 2
Tipos de verdade
boolean, numeric x divisão inteira, CAST, NULL, IS DISTINCT FROM
Módulo 3
Datas e tempo
date, INTERVAL, AGE, EXTRACT, DATE_TRUNC, TO_CHAR
Módulo 4
Texto
||, ILIKE, LOWER/INITCAP, SPLIT_PART, POSITION, STRING_AGG
Módulo 5
Agregação e GROUP BY
COUNT/SUM/AVG, HAVING, FILTER (WHERE …), bool_or
Módulo 6
JOIN, subconsultas e CTE
JOIN, USING, LEFT JOIN … IS NULL, WITH, EXISTS
Módulo 7
Window functions
OVER, PARTITION BY, ROW_NUMBER/RANK, running SUM, LAG/LEAD

Provas por módulo

Questões novas, corrigidas na hora: você escreve a query e o resultado é comparado com o esperado (mais algumas de múltipla escolha). Nota ≥ 70% = módulo firme. Faça depois de estudar o módulo correspondente.

O banco de prática

Mesmo cenário da Trilha 1, mesmos dados, mesmos números, só que com os tipos do Postgres.

TabelaO que é
clientesid, nome, email, cidade, estado, data_cadastro (date), ativo (boolean)
produtosid, nome, categoria, preco (numeric), estoque, ativo (boolean)
pedidosid, cliente_id, data_pedido (date), status, valor_total (numeric)
itens_pedidoid, pedido_id, produto_id, quantidade, preco_unitario (numeric)
defeitosmodulo, severidade, prioridade, status, reportado_por, ambiente, data_abertura (date), data_fechamento (date/NULL)
execucoes_testecaso_teste, suite, resultado, data_execucao (date), duracao_seg, defeito_id