Questão de Banco de Dados — SQL — FGV 2024
- Código
- fg077078
- Banca
- FGV
- Órgão
- CGM de Belo Horizonte - MG
- Ano
- 2024
- Nível
- Superior
- Cargo
- Auditor Interno - Ciência da Computação - Manhã
- AV – V – F.
- BV – F – F.
- CF – F – V.
- DF – V – F.
GabaritoC — F – F – V.
Gabarito: letra C — F, F, V. Apenas a terceira afirmativa está correta. A primeira confunde semi-junção com self-join; a segunda descreve outer join, não inner join. A anti-junção, descrita na terceira, realmente retorna linhas sem correspondência (NOT IN).
A semi-junção é uma operação que retorna linhas de uma tabela quando existe ao menos uma correspondência em outra tabela, sem duplicar linhas. O Oracle a implementa com EXISTS ou IN, não como uma junção de uma tabela consigo mesma. A descrição dada corresponde a um self-join (auto-junção), onde a mesma tabela aparece duas vezes na cláusula FROM com aliases. Portanto, a afirmativa é falsa.
Uma junção interna (INNER JOIN) retorna apenas as linhas que satisfazem a condição de junção, descartando linhas sem correspondência em ambas as tabelas. A descrição de “retornar algumas ou todas as linhas de uma tabela para as quais nenhuma linha da outra satisfaz a condição” é característica das junções externas (LEFT, RIGHT, FULL OUTER JOIN). Assim, a afirmativa está errada.
A anti-junção retorna linhas da tabela à esquerda do predicado que não possuem correspondência na tabela à direita. É tipicamente expressa com NOT EXISTS ou NOT IN. A definição apresentada está correta.
Conclusão: A sequência correta é F – F – V, correspondente à alternativa C.
Para não confundir, lembre-se:
Self-join: uma tabela consigo mesma (aliases).
Semi-junção: linhas de uma tabela que têm correspondência – usa EXISTS/IN.
Junção interna (INNER JOIN): apenas linhas com correspondência.
Junção externa (OUTER JOIN): inclui linhas sem correspondência (NULLs).
Anti-junção: linhas sem correspondência – usa NOT EXISTS/NOT IN.
Link permanente: /questoes/fg077078