PostgreSQL
Aprenda PostgreSQL do inicio ao fim. Fundamentos de SQL, joins, indices, transacoes, JSONB, EXPLAIN e design de schema.
14 lições, em ordem
- 120 min
O que é PostgreSQL
Imagine que você controla cada cliente, pedido e produto de uma loja pequena em uma planilha. Funciona, até o dia em que duas pessoas tentam editar...
Relational databaseACIDMVCCPostgres vs MySQL vs SQLiteWhere Postgres shines - 225 min
psql e Primeiros Comandos
Você já sabe para que serve o Postgres. O próximo problema é mais prático: como conversar com ele de verdade? Um servidor Postgres em execução fica...
Psql command line clientConnecting as postgres userMeta commands like \l \c \dt \d \qSemicolons end statementsMultiline queriesSELECT version() - 330 min
Criando Bancos de Dados e Tabelas
Até aqui você só olhou em volta num servidor que outra pessoa preparou. Isso serve para aprender as ferramentas, mas não leva a lugar nenhum num...
CREATE DATABASECREATE TABLEPRIMARY KEYNOT NULLDEFAULTDROP TABLE+1 - 425 min
Tipos de Dados
Toda coluna que você criou até aqui veio com um tipo colado nela, TEXT, SERIAL, TIMESTAMPTZ, sem muita explicação de por que aquele tipo e não outro....
Integer and bigintNumeric vs floatText and varcharBooleanTimestamptz vs timestampDate+3 - 530 min
SELECT e WHERE
Você tem uma tabela com alguns milhares de linhas e precisa de sete delas. Não de todas, não das primeiras cem: das sete que casam com uma regra que...
SELECT specific columnsWHERE with AND ORBETWEENINLIKE and ILIKEIS NULL+2 - 635 min
Joins
Os seus dados não estão em uma tabela só, e nem deveriam estar. Os usuários ficam em users, os posts deles ficam em posts, e a única coisa que liga...
INNER JOINLEFT JOINRIGHT JOINFULL OUTER JOINSelf joinUSING vs ON - 730 min
Agregações e Agrupamentos
Alguém pergunta como foi o resultado da loja no mês passado. Essa pessoa não quer as quatro mil linhas de pedidos. Quer um número, ou talvez um...
COUNTSUMAVGMINMAXGROUP BY+3 - 835 min
Indexes
A query rodava bem no seu notebook com duzentas linhas de teste. Em produção, contra quatro milhões, a mesma query leva onze segundos e a página...
B-tree defaultCREATE INDEXMulti-column indexPartial index WHERE activeUnique indexWrite cost+1 - 935 min
Transactions e Isolation
Duas instruções UPDATE movem dinheiro de Alice para Bob. A primeira roda, a conexão cai, a segunda nunca acontece, e trinta libras simplesmente...
BEGIN COMMIT ROLLBACKSavepointsREAD COMMITTED defaultREPEATABLE READSERIALIZABLEDirty read non-repeatable read phantom read serialization anomaly - 1035 min
Functions e Triggers
Toda tabela do seu schema tem uma coluna updated_at, e todas elas estão erradas. Nem sempre, só nos caminhos de código em que alguém esqueceu de...
CREATE FUNCTIONLANGUAGE plpgsqlRETURNSCREATE TRIGGERBEFORE UPDATENEW and OLD+1 - 1135 min
JSONB e Arrays
Alguns dados se recusam a ficar quietos em colunas. Uma tabela de produtos onde os notebooks têm quantidade de RAM, os teclados têm tipo de switch e...
JSONB column-> operator->> operator@> contains operatorGIN index on jsonbText[] and integer[] arrays+2 - 1235 min
EXPLAIN e Ajuste de Consultas
Uma página que carregava na hora agora leva nove segundos, e o instinto é começar a chutar. Põe um índice aqui. Reescreve o join. Vai ver é o ORDER...
EXPLAINEXPLAIN ANALYZESeq scan vs index scan vs index-only scanFixing a missing indexPg_stat_statements overview - 1325 min
Backup e Restauração
A rotina noturna vem gravando um arquivo no disco há oito meses e ninguém nunca o abriu. Isso não é um backup, é um arquivo em que alguém deposita...
Pg_dump custom formatPg_restorePlain SQL dumpsPoint-in-time recovery overview - 1460 min
Projeto Final: Crie um Schema
Até aqui, cada lição te entregou uma tabela pronta e pediu que você a consultasse. O trabalho de verdade acontece no sentido contrário: alguém...
Schema designPrimary and foreign keysIndexes on hot columnsUpdated_at triggerJSONB metadataJoins with aggregates+1
Aprenda PostgreSQL no seu idioma
Cada lição, quiz e resposta do tutor aparece no seu idioma. O tutor de IA responde no idioma em que você pergunta.
Roles that use PostgreSQL
See how hiring teams interview engineers on PostgreSQL, in production-like environments.
Database Administrator (DBA)
Hire DBAs in real workspaces with PostgreSQL or MySQL, real replication lag, real slow queries and real backups to restore. Live or take-home.
See the interviewBackend Engineer (Go, Rust, Java)
Hire backend engineers in real services with real databases, real concurrency and real latency budgets. Live or take-home, fully recorded.
See the interviewData Engineer
Hire data engineers in workspaces with real Spark, dbt and Airflow pipelines. Schema drift, bad data and reruns included.
See the interview