Considere a tabela Funcionario e a consulta, a seguir: Assi...
Considere a tabela Funcionario e a consulta, a seguir:
Assinale a alternativa que contém os valores exibidos, após a execução da consulta.
- Gabarito Comentado (1)
- Aulas (12)
- Comentários (0)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A questão aborda o tema de consultas SQL em bancos de dados, especificamente o uso da cláusula WHERE com subconsultas (ANY) e condições lógicas para filtrar registros. A consulta SQL apresentada seleciona certos valores da coluna mat da tabela Funcionario com base em critérios definidos. O candidato precisa entender como as subconsultas e as condições lógicas influenciam o resultado final da consulta.
Análise da Consulta SQL
A consulta SQL apresentada é:
SELECT mat FROM Funcionario
WHERE NOT mat = ANY (
SELECT mat FROM Funcionario
WHERE (sal < 800 OR sal > 1000)
OR (nom IN ('Laura', 'Pedro'))
)
Vamos analisar os critérios um a um.
1. Subconsulta Interna:
o A subconsulta SELECT mat FROM Funcionario WHERE (sal < 800 OR sal > 1000) OR (nom IN ('Laura', 'Pedro')) retorna todos os mat de funcionários que:
§ Têm sal menor que 800 ou maior que 1000, ou
§ Têm o nom igual a 'Laura' ou 'Pedro'.
2. Resultado da Subconsulta Interna:
o Avaliamos cada funcionário para ver quais atendem a uma dessas condições:
§ Pedro (mat 100) tem sal = 1000 — não atende ao critério de salário, mas o nome é 'Pedro', então é incluído.
§ Maria (mat 200) tem sal = 1200 — atende ao critério sal > 1000, então é incluída.
§ Joana (mat 300) tem sal = 800 — não atende a nenhum critério, então é excluída.
§ Laura (mat 400) tem sal = 700 — atende ao critério de nome ('Laura'), então é incluída.
§ Edna (mat 500) tem sal = 850 — não atende a nenhum critério, então é excluída.
§ Edilson (mat 600) tem sal = 900 — não atende a nenhum critério, então é excluído.
§ Geraldo (mat 700) tem sal = 1100 — atende ao critério sal > 1000, então é incluído.
o Resultado da subconsulta: {100, 200, 400, 700}.
3. Consulta Externa:
o A condição NOT mat = ANY (...) implica que a consulta externa selecionará todos os mat que não estão no conjunto {100, 200, 400, 700}.
4. Resultado da Consulta Externa:
o Excluindo os mat {100, 200, 400, 700}, restam os valores {300, 500, 600}.
Análise das Alternativas
A partir dos valores obtidos na consulta externa ({300, 500, 600}), analisamos as opções:
A) 500, 600 — Incorreta. Exclui 300, que também deveria estar incluído.
B) 300, 500, 600 — Correta. Todos os valores restantes após a exclusão dos mat na subconsulta estão presentes.
C) 100, 300, 500, 600 — Incorreta. Inclui 100, que foi excluído na subconsulta.
D) 100, 200, 400, 700 — Incorreta. Lista exatamente os valores excluídos pela subconsulta.
GABARITO DA BANCA: ALTERNATIVA B
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo