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

bookConsultas Aninhadas

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

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

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

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

Vamos conferir a estrutura da nova tabela para entender seu papel em nosso 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.

Vamos considerar um exemplo em que utilizamos consultas aninhadas 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 )
copy

Utiliza-se uma cláusula WHERE para especificar que o nome do departamento deve estar na tabela recuperada pela consulta interna.

Vamos dividir essa consulta em duas partes separadas para entender como ela funciona. Primeiro, vamos recuperar os nomes dos departamentos com orçamentos de $500.000 ou menos (nossa consulta interna):

123
SELECT name FROM department WHERE budget <= 500000
copy

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' )
copy

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 é crucial 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?

Select the correct answer

question mark

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

Select the correct answer

question mark

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

Select the correct answer

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

Suggested prompts:

Can you explain more about how nested queries work in SQL?

What are some common mistakes to avoid when using nested queries?

Can you show an example of a nested query using a different operator, like EXISTS?

bookConsultas Aninhadas

Deslize para mostrar o menu

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

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

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

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

Vamos conferir a estrutura da nova tabela para entender seu papel em nosso 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.

Vamos considerar um exemplo em que utilizamos consultas aninhadas 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 )
copy

Utiliza-se uma cláusula WHERE para especificar que o nome do departamento deve estar na tabela recuperada pela consulta interna.

Vamos dividir essa consulta em duas partes separadas para entender como ela funciona. Primeiro, vamos recuperar os nomes dos departamentos com orçamentos de $500.000 ou menos (nossa consulta interna):

123
SELECT name FROM department WHERE budget <= 500000
copy

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' )
copy

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 é crucial 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?

Select the correct answer

question mark

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

Select the correct answer

question mark

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

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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