🔎 Subconsultas SQL

Introdução

Uma subconsulta, também conhecida como subquery, é uma consulta SQL inserida dentro de outra consulta.

Ela permite utilizar o resultado de uma consulta como informação para executar outra consulta.

📌 Subconsulta é uma consulta dentro de outra consulta SQL.

Estrutura de uma Subconsulta


SELECT coluna

FROM tabela


WHERE coluna OPERADOR


(
    SELECT coluna

    FROM tabela
);
          

Como funciona?

  1. A subconsulta é executada primeiro.
  2. O resultado é retornado.
  3. A consulta principal utiliza esse resultado.

Exemplo de Tabelas


FUNCIONARIOS

+----+----------+---------+

| ID | Nome     | Salário |

+----+----------+---------+

| 1  | Ana      | 3000    |

| 2  | Carlos   | 5000    |

| 3  | Pedro    | 7000    |

+----+----------+---------+
          

Exemplo Simples

Encontrar funcionários que recebem acima da média salarial.


SELECT nome, salario

FROM funcionarios


WHERE salario >

(
    SELECT AVG(salario)

    FROM funcionarios
);
          

Resultado


Carlos | 5000

Pedro  | 7000
          

A subconsulta calcula a média e a consulta principal faz o filtro.

Tipos de Subconsultas

Tipo Descrição
Subconsulta no SELECT Retorna um valor calculado
Subconsulta no FROM Cria uma tabela temporária
Subconsulta no WHERE Filtra registros
Subconsulta no HAVING Filtra agrupamentos

Subconsulta com IN


SELECT nome

FROM clientes


WHERE id IN

(
    SELECT cliente_id

    FROM pedidos
);
          

Retorna clientes que possuem pedidos.

Subconsulta com EXISTS


SELECT nome

FROM clientes c


WHERE EXISTS

(
    SELECT *

    FROM pedidos p

    WHERE p.cliente_id = c.id
);
          

Verifica se existe relacionamento antes de retornar o registro.

Subconsulta x JOIN

Subconsulta JOIN
Consulta dentro de consulta Relaciona tabelas diretamente
Pode facilitar algumas análises Geralmente possui melhor desempenho
Mais simples em alguns casos Mais usado em grandes consultas

Aplicações no Mundo Real

Sistema Exemplo
Financeiro Encontrar valores acima da média
E-commerce Clientes que realizaram compras
RH Funcionários acima do salário médio
Relatórios Comparações e análises

Erros Comuns

Erro Problema
Retornar vários valores com = Erro de comparação
Subconsulta muito complexa Baixo desempenho
Não utilizar índices Consultas lentas
Substituir JOIN sem necessidade Código menos eficiente

Boas Práticas

Resumo da Aula

🎓 Aula concluída! Agora você conhece subconsultas SQL e sabe utilizar consultas dentro de consultas para análises avançadas.