Bancos de Dados - Aula 15 - Linguagem de consulta – SQL Parte III
Aula 3: Subconsultas em SQL
Introdução às Subconsultas
- A aula aborda a linguagem SQL no contexto do curso de Engenharia da Computação, focando na utilização de subconsultas.
- O conceito de subconsulta é introduzido como uma técnica para recuperar informações que dependem da execução de outra consulta.
Estrutura das Subconsultas
- As subconsultas são blocos de código SQL que podem ser inseridos na cláusula
WHEREde uma consulta principal.
- É necessário conectar as duas consultas para que a consulta externa utilize os resultados da interna, permitindo a recuperação eficaz das informações.
Exemplo Prático: Funcionários com Dependentes
- O exemplo prático envolve encontrar funcionários com dois ou mais dependentes, utilizando tabelas específicas (funcionário e dependente).
- A consulta interna conta o número de dependentes por funcionário, retornando um valor inteiro que será utilizado na consulta externa.
Comunicação entre Consultas
- A comunicação entre as consultas é destacada; a variável utilizada na consulta interna pode referenciar atributos da tabela chamada na consulta externa.
- Essa interação permite comparações entre dados provenientes de diferentes tabelas, essencial para o funcionamento correto das subconsultas.
Análise dos Resultados
- Um teste prático é realizado usando IDs específicos para contar quantos dependentes cada funcionário possui.
- Os resultados são analisados: apenas funcionários com contagem maior ou igual a 2 são incluídos na resposta final.
Conclusão sobre Salários e Departamentos
- Uma nova consulta é apresentada, onde se busca listar funcionários com salários superiores aos do departamento 5.
Conexões entre Consultas em SQL
Estrutura de Consultas com Subconsultas
- A consulta busca funcionários do departamento 5 e verifica se o salário é maior que todos os salários recuperados na subconsulta interna.
- A palavra-chave "IN" é utilizada para verificar se um valor pertence a um conjunto, permitindo identificar funcionários com dependentes que têm o mesmo nome e sexo.
Uso de Tabelas e Renomeação
- É necessário utilizar as tabelas
funcionárioedependentepara comparar nomes e sexos, utilizando renomeação para facilitar a referência.
- Renomear as tabelas ajuda a diferenciar atributos com nomes iguais nas duas tabelas, como nome e sexo dos funcionários e dependentes.
Verificação de Dependentes
- Para cada funcionário, verifica-se se o identificador aparece no resultado da subconsulta, comparando nome e sexo.
- O teste da consulta revela que apenas Cláudia possui um dependente com o mesmo nome e sexo.
Utilização da Cláusula EXISTS
- A cláusula "EXISTS" executa a consulta externa somente se a subconsulta retornar uma ou mais linhas.
- Se a subconsulta não retornar resultados (vazia), "EXISTS" será falso, excluindo esses funcionários da resposta.
Consulta Negada com EXISTS
- Uma nova consulta utiliza "EXISTS" negado para recuperar nomes de empregados sem dependentes associados.
- A condição é que não exista nenhum dependente associado ao funcionário; caso contrário, ele não será incluído na resposta.
Resultados das Consultas
- Funcionários são verificados quanto à presença de dependentes; Cláudia tem três dependentes enquanto Caio não possui nenhum.
Alteração de Salários e Exclusão de Funcionários
Lógica da Subconsulta para Alteração de Salário
- A consulta altera o salário dos funcionários que pertencem a um departamento específico, onde o gerente do departamento tem o ID 163.
- O foco está em garantir que a alteração do salário esteja dentro do conjunto retornado pela subconsulta, que filtra os departamentos com base no gerente.
Exclusão de Funcionários Baseada em Subconsulta
- A próxima consulta se concentra na exclusão de funcionários, utilizando uma lógica semelhante à anterior.
- Neste caso, a exclusão é feita para funcionários cujo número pertence ao conjunto retornado pela subconsulta, especificamente aqueles que trabalham para um departamento gerenciado por um funcionário com ID 163.
Conclusão da Aula sobre Subconsultas
- A aula foi finalizada com um convite aos alunos para resolverem exercícios práticos relacionados ao uso de subconsultas.