Pular para o conteúdo principal
eLearner.app

Curso interativo

Curso SQL

Aprenda SQL do zero, em inglês, com um Postgres real rodando no seu navegador.

01 · Módulo 1 — SELECT Básico

4 aulas

Os fundamentos: ler dados de uma tabela e filtrá-los.

  1. 1.1Introdução ao SQLO que é SQL, por que é usado e como é um banco de dados.~5 min
  2. 1.2SELECIONE… DEA consulta mais simples: lendo linhas de uma tabela.~10 min
  3. 1.3Filtrando com WHERESelecionando apenas as linhas que satisfazem uma condição.~10 min
  4. 1.4Classificando com ORDER BYColocando os resultados em ordem, crescente ou decrescente.~8 min

02 · Módulo 2 — SELECT mais poderoso

4 aulas

Limite, desduplique, renomeie e conte: as ferramentas que você usa todos os dias.

  1. 2.1Limitando com LIMITRetornando apenas as primeiras N linhas, por exemplo, para construir placares.~6 min
  2. 2.2Valores únicos com DISTINCTRemovendo duplicatas do resultado de um SELECT.~6 min
  3. 2.3Renomeando com ASDando nomes mais legíveis às colunas e expressões no resultado.~6 min
  4. 2.4Contando e resumindo: COUNT, AVG, MAXFunções agregadas: obter um único número de muitas linhas.~8 min

03 · Módulo 3 — JOIN e GROUP BY

4 aulas

Combinar múltiplas tabelas e produzir relatórios por grupo: o coração de toda consulta real.

  1. 3.1Unindo duas tabelas: INNER JOINCombinar linhas de tabelas diferentes seguindo seus relacionamentos.~12 min
  2. 3.2Mantendo tudo à esquerda: LEFT JOINIncluindo linhas que não correspondem na outra tabela.~10 min
  3. 3.3Agrupando com GROUP BYCalcular um agregado por grupo, por exemplo, por departamento.~10 min
  4. 3.4Filtrando grupos: HAVINGMantendo apenas os grupos que satisfazem uma condição na agregação.~8 min

04 · Módulo 4 — SQL Prático

4 aulas

As ferramentas que fazem a diferença no trabalho real: listas, intervalos, NULLs e lógica condicional.

  1. 4.1Listas e intervalos: IN e BETWEENFiltros compactos para “um destes” e “entre A e B”.~8 min
  2. 4.2Tratamento de NULLs: IS NULL e COALESCEReconhecer e lidar com valores ausentes sem surpresas.~10 min
  3. 4.3Lógica condicional: CASE WHENTransformando valores em categorias diretamente no SELECT.~10 min
  4. 4.4Uma consulta dentro de outra: subconsultasUsando o resultado de um SELECT dentro de outro SELECT.~12 min

05 · Módulo 5 — JOINs avançados

4 aulas

JOINs de múltiplas tabelas, auto-junções, OUTER, CROSS e operações de conjunto: combinando dados como um profissional.

  1. 5.1JOINs em três ou mais tabelasPercorrendo uma cadeia de relacionamentos: pedidos → clientes → produtos, em uma única consulta.~12 min
  2. 5.2Self-JOIN: uma tabela consigo mesmaHierarquias e relacionamentos internos: lendo uma tabela com dois papéis (filho e pai).~10 min
  3. 5.3OUTER JOIN: encontrando as "lacunas"Usando LEFT/RIGHT/FULL OUTER JOIN para encontrar linhas sem correspondência.~10 min
  4. 5.4UNION, INTERSECT, EXCEPT (e CROSS JOIN)Combinação de resultados como conjuntos: união, intersecção, diferença e produto cartesiano.~12 min

06 · Módulo 6 — Funções integradas

4 aulas

Transforme e manipule dados com funções nativas do PostgreSQL: strings, datas, números, conversões de tipo.

  1. 6.1Funções de stringLOWER, UPPER, LENGTH, concatenação, SUBSTRING, TRIM, REPLACE, LIKE e ILIKE.~12 min
  2. 6.2Funções de data e carimbo de data/horaEXTRACT, DATE_TRUNC, intervalos e diferenças de data.~12 min
  3. 6.3Funções numéricasROUND, CEIL, FLOOR, ABS, MOD e divisão inteira vs decimal.~10 min
  4. 6.4CAST e conversões de tipoConvertendo entre tipos com `::type` e `CAST(... AS ...)`.~10 min

07 · Módulo 7 — Análise avançada

4 aulas

Consultas em várias etapas (CTE), classificações e totais em execução (funções de janela), hierarquias ilimitadas (COM RECURSIVO).

  1. 7.1CTE: consultas em várias etapas com COMDividir uma consulta complexa em etapas nomeadas para facilitar a leitura e reutilização.~12 min
  2. 7.2Funções de janela: classificações e cálculos por grupoROW_NUMBER, RANK, DENSE_RANK com OVER(PARTITION BY…) para classificações em grupo.~14 min
  3. 7.3LAG, LEAD e totais em execuçãoComparar cada linha com a anterior/próxima e calcular somas cumulativas.~12 min
  4. 7.4CTEs recursivos: hierarquias de profundidade arbitráriaCOM RECURSIVO para atravessar hierarquias como categorias.~14 min

08 · Módulo 8 — Escrevendo e modificando dados

4 aulas

INSERT, UPDATE, DELETE, CREATE TABLE com restrições, transações: fechando o loop com gravações.

  1. 8.1Inserindo dados: INSERTCláusula INSERT, RETURNING de linha única e múltipla, escolhendo colunas explicitamente.~10 min
  2. 8.2Atualizando e excluindo: UPDATE e DELETEMudanças seletivas com WHERE e por que um WHERE esquecido é um desastre.~10 min
  3. 8.3Criando tabelas e restrições: DDLCRIAR TABELA com CHAVE PRIMÁRIA, NÃO NULO, ÚNICO, CHAVE ESTRANGEIRA, VERIFICAR e PADRÃO.~12 min
  4. 8.4Transações: tudo ou nadaBEGIN, COMMIT, ROLLBACK: tornando atômico um grupo de operações.~10 min

09 · Módulo 9 — Estruturas de dados e DDL

4 aulas

Criação e alteração de tabelas, restrições avançadas, tipos e visualizações complexas.

  1. 9.1Tipos de dados avançados e ENUMsTipos numéricos, TEXT vs VARCHAR, BOOLEAN, UUID e tipos ENUM personalizados.~10 min
  2. 9.2Restrições múltiplas e em nível de tabelaRestrições compostas UNIQUE e PRIMARY KEY, CHECK avançado e chaves estrangeiras (ON DELETE CASCADE).~12 min
  3. 9.3Alterando a estrutura: ALTER TABLEAdicionar, modificar e remover colunas ou restrições de tabelas existentes.~10 min
  4. 9.4Visualizações e abstração de dadosCriação de VIEWs para simplificar consultas complexas e VIEWS MATERIALIZADAS para desempenho.~12 min

10 · Otimização e índices

4 aulas

A arte de agilizar consultas: índices, planos de execução e otimização de banco de dados.

  1. 10.1Índices e árvores BCrie índices para acelerar drasticamente consultas de pesquisa em tabelas grandes.~15 min
  2. 10.2EXPLICAR e ANALISARAprenda a ler os planos de execução do banco de dados para diagnosticar gargalos.~15 min
  3. 10.3Índices compostos e parciaisUse índices em diversas colunas de uma só vez ou apenas em uma fatia específica dos dados.~12 min
  4. 10.4O problema N+1O infame problema de desempenho do ORM e os métodos SQL nativos para superá-lo em uma única consulta.~12 min

11 · Transações e simultaneidade

4 aulas

Gerencie com segurança modificações simultâneas de dados: transações ACID, bloqueios e níveis de isolamento.

  1. 11.1Transações ACID (BEGIN/COMMIT)Mantenha os dados consistentes com BEGIN, COMMIT e ROLLBACK, agrupando consultas em um único bloco invisível para outros.~15 min
  2. 11.2Condições de corridaCenários de borda: o que acontece quando dois funcionários de banco de dados paralelo atuam no mesmo carrinho de usuário.~10 min
  3. 11.3Bloqueando e SELECIONE PARA ATUALIZAÇÃOBloqueia ativamente as linhas durante as leituras, forçando outros threads em mutação a aguardar sua vez.~15 min
  4. 11.4Níveis de isolamentoVá ao limite implementando Serializable ou mude para Read Committed para um desempenho inseguro, mas rápido.~12 min

12 · Funções e gatilhos

4 aulas

Automatize a lógica de negócios dentro do banco de dados: escreva funções reutilizáveis e reaja a eventos com gatilhos.

  1. 12.1UDFs e SQL baseCrie suas próprias funções definidas pelo usuário para encapsular cálculos complexos e reutilizá-los como macros em cada consulta.~15 min
  2. 12.2Lógica avançada com PL/pgSQLDê superpoderes às suas funções: variáveis, ramificações if-else e loops em puro estilo processual dentro do banco de dados.~15 min
  3. 12.3Introdução aos gatilhosDefina funções especiais que possam inspecionar instantaneamente o registro de SAÍDA (ANTIGO) ou ENTRADA (NOVO).~15 min
  4. 12.4Gatilhos práticos e auditoriaAutomatize a segurança: atualize automaticamente a data "updated_at" e arquive magicamente as linhas excluídas para conformidade.~12 min

13 · Funções de janela

4 aulas

Análise avançada de dados sem recolher linhas: descubra OVER(), PARTITION BY e funções analíticas.

  1. 13.1Introdução e a cláusula OVERExecute cálculos agregados (como SUM ou AVG) preservando as linhas individuais originais.~15 min
  2. 13.2Agrupando com PARTITION BYCrie agrupamentos lógicos (janelas) dentro dos dados nos quais aplicar funções, sem usar GROUP BY.~15 min
  3. 13.3Classificações: ROW_NUMBER, RANK e DENSE_RANKAtribua números de linhas sequenciais e classificações aos resultados, lidando corretamente com empates.~15 min
  4. 13.4Turnos: LAG e LEADAcesse valores da linha anterior ou seguinte diretamente da linha atual para calcular deltas e variações.~12 min

14 · CTEs e consultas hierárquicas (WITH)

3 aulas

Simplifique consultas enormes com Expressões de Tabela Comuns e navegue em árvores de dados ilimitadas com CTEs recursivos.

  1. 14.1Introdução aos CTEs (COM)Substitua subconsultas aninhadas ilegíveis por um formato processual limpo, declarando "tabelas virtuais" temporárias.~12 min
  2. 14.2CTEs múltiplos e encadeadosControle a complexidade dividindo o processamento em várias etapas sequenciais dentro de uma única instrução WITH.~15 min
  3. 14.3CTEs recursivos: dados em forma de árvoreNavegue sem limites pelas hierarquias do gerenciador e pelas categorias pai-filho chamando o CTE por si mesmo.~18 min

15 · PostgreSQL JSON e NoSQL

2 aulas

Aproveite o poder relacional combinado com suporte flexível a documentos via JSON e JSONB sem usar bancos de dados externos.

  1. 15.1Integração JSON e JSONBArmazene documentos complexos dentro de uma coluna e consulte seus campos com operadores de seta.~15 min
  2. 15.2Funções de agregação JSONGere arquivos JSON ou matrizes de objetos dinamicamente nativamente em SQL usando json_build_object() e json_agg().~15 min