Criar conta grátis

Modelagem de Dados e SQL

10. SQL: consultas (SELECT)

10º capítulo da apostila Modelagem de Dados e SQL: explicação contínua e em linguagem simples sobre SQL: consultas (SELECT), com exemplos, conexões e mapa mental.

12 min de leitura70 questões para praticarRevisado em 14/09/2026

Consultar é transformar relações em um novo resultado. Embora SELECT apareça primeiro na escrita, o banco precisa começar pelas fontes, aplicar junções e filtros, formar grupos e somente então projetar a saída.

O percurso começa pela representação do mundo real. Primeiro entendemos a arquitetura e os níveis de modelagem; depois construímos o modelo relacional, protegemos sua integridade e aprendemos SQL. Ao final, levamos essa base para o ambiente analítico dimensional. Este é o capítulo 10 de 12 da disciplina Modelagem de Dados e SQL. A leitura retoma SQL: DDL — definição de dados e usa essa base para avançar. Depois, seguiremos para SQL: DML e transações (TCL).

O fio condutor

Banco de dados deve ser estudado como um sistema de decisões conectadas. O significado atribuído ao dado orienta o modelo; o modelo condiciona consultas e atualizações; o SGBD executa essas operações sob regras de segurança, concorrência, desempenho e recuperação. Quando uma dessas camadas muda, as demais podem ser afetadas.

Ao longo da leitura, acompanhe sempre quatro perguntas: qual problema está sendo resolvido, qual estrutura representa o problema, que garantia precisa ser preservada e qual custo acompanha a escolha. Esse roteiro ajuda a compreender os conceitos em vez de apenas memorizar nomes.

A ordem lógica de processamento

Começamos por A ordem lógica de processamento, pois essa base permite compreender as decisões apresentadas nas seções seguintes.

A ordem de escrita é SELECT … FROM … WHERE … GROUP BY … HAVING … ORDER BY. A ordem de avaliação é outra: FROM (com as junções) → WHERE (filtra linhas) → GROUP BY (forma grupos) → HAVING (filtra grupos) → SELECT (calcula a projeção e os aliases) → ORDER BY (ordena).

DISTINCT atua sobre a combinação completa de colunas projetadas, nunca sobre a primeira apenas: em SELECT DISTINCT cidade, uf, a mesma cidade reaparece se estiver ligada a UFs diferentes. E o SQL opera sobre multiconjuntos — sem DISTINCT, linhas repetidas permanecem, ao contrário da projeção da álgebra relacional.

Repare como FROM antes de SELECT, Alias só depois, DISTINCT sobre a linha participam da mesma decisão. Ao relacionar esses elementos, fica mais fácil prever o comportamento do banco e reconhecer os efeitos de cada escolha.

Filtros, curingas e precedência

A seção anterior apresentou A ordem lógica de processamento. Agora chegamos a Filtros, curingas e precedência, que acrescenta a próxima peça do mesmo raciocínio.

  • BETWEEN a AND b é intervalo fechado: equivale a >= a AND <= b. A ordem importa — BETWEEN 200 AND 100 não retorna nada.
  • No LIKE, % casa zero ou mais caracteres e _ casa exatamente um. 'Ma%' pega o que começa com Ma; '%Ma%' pega o que contém Ma; 'Ma_' exige três caracteres.
  • Para procurar o próprio % ou _ como texto, usa-se ESCAPE: observacao LIKE '%#%%' ESCAPE '#'.
  • IN ('SP','RJ') equivale à disjunção de igualdades; NOT IN equivale à conjunção de desigualdades.
  • A precedência lógica é NOT → AND → OR. Assim, categoria = 'A' OR categoria = 'B' AND preco > 100 lê-se categoria = 'A' OR (categoria = 'B' AND preco > 100).

Continue lendo de graça

O capítulo inteiro está liberado no plano gratuito

Criar conta leva menos de um minuto e não pede cartão. Você destrava o texto completo, o mapa mental, o PDF para estudar off-line e ainda resolve questões inéditas todo dia.

Leu o resumo? Agora pratique.

São 70 questões inéditas de SQL: consultas (SELECT), todas comentadas alternativa por alternativa.

Criar conta grátis e praticar

Você volta para este capítulo depois de criar a conta.

Fontes consultadas

  • ISO/IEC 9075 (padrão SQL)
  • Elmasri & Navathe, Sistemas de Banco de Dados — caps. 6 e 7
  • Silberschatz, Korth & Sudarshan, Sistema de Banco de Dados — caps. 3 a 5
  • Documentação oficial do PostgreSQL (SELECT, junções, funções de janela, WITH)
  • Acervo comentado de Banco de Dados — SQL: consultas (SELECT) (70 questões publicadas), conferido em 14/09/2026