Consultas Aninhadas
A administração escolar está satisfeita com nossas conquistas recentes e está ansiosa para avançar.
Enquanto eles iniciam o recesso 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, adicionamos 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 usamos consultas aninhadas para recuperar os funcionários que trabalham em departamentos com orçamentos de $500.000 ou menos:
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
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 separadas para entender seu funcionamento. Primeiro, obtenha os nomes dos departamentos com orçamentos de $500.000 ou menos (nossa consulta interna):
123SELECT 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:
12345SELECT * 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:
-
A consulta interna obtém os
names
dos departamentos necessários; -
A cláusula
WHERE
verifica se esses departamentos estão na tabela retornada pela consulta interna; -
O resultado desejado é obtido.
Veja 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 os seguintes pontos importantes:
-
Resultado Único na Subconsulta: garantir que a consulta aninhada retorne apenas uma coluna. Se utilizada em uma comparação, deve idealmente retornar um único valor. Isso é fundamental para operadores como
=
,>
,<
,>=
,<=
,<>
; -
Tipos de Dados: o tipo de dado da coluna retornada deve corresponder ao da coluna com a qual está sendo comparada, para evitar erros;
-
Otimização: consultas aninhadas podem ser lentas, especialmente se executadas para cada linha da consulta principal;
-
Uso do Operador IN: consultas aninhadas frequentemente utilizam o operador
IN
para verificar valores em um subconjunto. Também é possível utilizar operadores de comparação para condições mais complexas.
1. O que é uma consulta aninhada em SQL?
2. Qual operador SQL é comumente utilizado 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?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 4
Consultas Aninhadas
Deslize para mostrar o menu
A administração escolar está satisfeita com nossas conquistas recentes e está ansiosa para avançar.
Enquanto eles iniciam o recesso 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, adicionamos 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 usamos consultas aninhadas para recuperar os funcionários que trabalham em departamentos com orçamentos de $500.000 ou menos:
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
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 separadas para entender seu funcionamento. Primeiro, obtenha os nomes dos departamentos com orçamentos de $500.000 ou menos (nossa consulta interna):
123SELECT 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:
12345SELECT * 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:
-
A consulta interna obtém os
names
dos departamentos necessários; -
A cláusula
WHERE
verifica se esses departamentos estão na tabela retornada pela consulta interna; -
O resultado desejado é obtido.
Veja 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 os seguintes pontos importantes:
-
Resultado Único na Subconsulta: garantir que a consulta aninhada retorne apenas uma coluna. Se utilizada em uma comparação, deve idealmente retornar um único valor. Isso é fundamental para operadores como
=
,>
,<
,>=
,<=
,<>
; -
Tipos de Dados: o tipo de dado da coluna retornada deve corresponder ao da coluna com a qual está sendo comparada, para evitar erros;
-
Otimização: consultas aninhadas podem ser lentas, especialmente se executadas para cada linha da consulta principal;
-
Uso do Operador IN: consultas aninhadas frequentemente utilizam o operador
IN
para verificar valores em um subconjunto. Também é possível utilizar operadores de comparação para condições mais complexas.
1. O que é uma consulta aninhada em SQL?
2. Qual operador SQL é comumente utilizado 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?
Obrigado pelo seu feedback!