Consultas 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:
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 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):
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
namesdos departamentos necessários; -
A cláusula
WHEREverifica se esses departamentos estão na tabela da consulta interna; -
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:
-
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
=,>,<,>=,<=,<>; -
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
INpara 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?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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?
Incrível!
Completion taxa melhorada para 4
Consultas 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:
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 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):
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
namesdos departamentos necessários; -
A cláusula
WHEREverifica se esses departamentos estão na tabela da consulta interna; -
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:
-
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
=,>,<,>=,<=,<>; -
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
INpara 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?
Obrigado pelo seu feedback!