Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Consultas Aninhadas | Subconsultas Aninhadas
SQL Intermediário

Consultas Aninhadas

Deslize para mostrar o menu

A administração escolar está satisfeita com suas conquistas recentes e está ansiosa para avançar.

Com o início das férias de verão, você tem a oportunidade de explorar novos métodos e aprimorar suas habilidades em SQL.

O foco será em consultas aninhadas, um conceito fundamental em SQL.

Note
Definição

Consultas aninhadas, ou subconsultas aninhadas, são componentes essenciais do SQL em que uma consulta está inserida dentro de outra consulta. Essas estruturas possibilitam diversas operações como filtragem de dados, cálculos e recuperação de informações, frequentemente exigindo a integração de subconsultas.

Veja um exemplo do banco de dados da empresa. À medida que a empresa cresce, foi adicionada uma nova tabela department. Isso altera o funcionamento do nosso banco de dados.

Confira a estrutura da nova tabela para entender seu papel no banco de dados:

A nova tabela contém departamentos, seus tipos e orçamentos. E na tabela employee, como você deve se lembrar, há informações sobre o departamento ao qual cada funcionário pertence.

Considere um exemplo em que consultas aninhadas são usadas para recuperar os funcionários que trabalham em departamentos com orçamentos de $500.000 ou menos:

1234567
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )

Uma cláusula WHERE é usada para especificar que o nome do departamento deve estar na tabela recuperada com a consulta interna.

Divida esta consulta em duas separadas para entender como ela funciona. Primeiro, obtenha os nomes dos departamentos com orçamentos de $500.000 ou menos (consulta interna):

123
SELECT name FROM department WHERE budget <= 500000

Agora, considerando o resultado obtido, escreva a segunda consulta para recuperar informações sobre os funcionários desses departamentos:

12345
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )

O resultado desta consulta será o mesmo que o da primeira consulta.

Veja uma análise passo a passo:

  1. A consulta interna obtém os names dos departamentos necessários;

  2. A cláusula WHERE verifica se esses departamentos estão na tabela da consulta interna;

  3. Obtemos o resultado desejado.

Aqui está a sintaxe básica para uma consulta interna:

SELECT columns
FROM table_1
WHERE column_name IN (
  SELECT column
  FROM table_2
  other clauses
)

Ao utilizar consultas aninhadas, considere estes pontos importantes:

  1. Resultado único na subconsulta: garantir que a consulta aninhada retorne apenas uma coluna. Se usada em uma comparação, deve idealmente retornar um único valor. Isso é fundamental para operadores como =, >, <, >=, <=, <>;

  2. Tipos de dados: o tipo de dado da coluna retornada deve corresponder ao da coluna com a qual está sendo comparada, para evitar erros;

  3. Otimização: consultas aninhadas podem ser lentas, especialmente se executadas para cada linha da consulta principal;

  4. Uso do operador IN: consultas aninhadas frequentemente utilizam o operador IN para verificar valores em um subconjunto. Também é possível usar operadores de comparação para condições mais complexas.

1. O que é uma consulta aninhada em SQL?

2. Qual operador SQL é comumente usado com consultas aninhadas para verificar valores em um subconjunto?

3. Por que é importante que o tipo de dado da coluna retornada por uma consulta aninhada corresponda à coluna à qual ela é comparada?

question mark

O que é uma consulta aninhada em SQL?

Selecione a resposta correta

question mark

Qual operador SQL é comumente usado com consultas aninhadas para verificar valores em um subconjunto?

Selecione a resposta correta

question mark

Por que é importante que o tipo de dado da coluna retornada por uma consulta aninhada corresponda à coluna à qual ela é comparada?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 1

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 1
some-alt