Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2024

Banco de DadosSQL
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ã
Uma junção é uma consulta SQL que combina linhas de duas ou mais tabelas, visões ou visões materializadas.Com relação aos tipos de junção suportadas pelo Oracle, analise as afirmativas a seguir e assinale (V) para a verdadeira e (F) para a falsa.( ) Uma semi-junção é uma junção de uma tabela a si mesma. Esta tabela aparece duas vezes na FROM cláusula e é seguida por aliases de tabela que qualificam os nomes das colunas na condição de junção. Para realizar uma semi-junção, o Oracle Database combina e retorna linhas da tabela que satisfazem a condição de junção.( ) Uma junção interna estende o resultado de uma junção simples. Essa junção retorna todas as linhas que satisfazem a condição de junção e retorna algumas ou todas as linhas de uma tabela para as quais nenhuma linha da outra satisfaz a condição de junção.( ) Uma anti-junção retorna linhas do lado esquerdo do predicado para as quais não há linhas correspondentes no lado direito do predicado. Ou seja, ele retorna linhas que não correspondem (NOT IN) à subconsulta do lado direito.As afirmativas são, respectivamente,
  1. AV – V – F.
  2. BV – F – F.
  3. CF – F – V.
  4. DF – V – F.
Revelar gabarito e comentário

GabaritoC — F – F – V.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Junções no Oracle: semi-junção, junção interna e anti-junção

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).

Primeira afirmativa — ❌ Falsa

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.

Segunda 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.

Terceira afirmativa — ✅ Verdadeira ⟵ GABARITO

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.

NÃO CAIA NESSA!

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