Questão nº 62

Questão de Tecnologia da Informação · FGV SMF-RJ 2023 - Manhã (P1) (nº 62)

FGV2023Fiscal de RendasTecnologia da Informação
Gabarito: Cver comentário ↓

Considere a existência de uma tabela relacional N, com apenas uma coluna, intitulada numero, contendo os números inteiros de 1 até 100, um em cada linha, como ilustrada a seguir.

Figura da questão de Tecnologia da Informação

\

Como pode haver discrepâncias entre implementações da linguagem SQL, é dado que a função sqrt(x) retorna a raiz quadrada de x e que a expressão a % b retorna o resto da divisão inteira de a por b.


Analise o comando SQL a seguir, que faz referência à tabela N descrita anteriormente.

select n1.numero * n2.numero from N n1, N n2 where n1.numero <> n2.numero

O número de linhas do resultado produzido pela execução desse comando, sem contar a linha de títulos, é:

Resposta comentada

Gabarito Alternativa C

Quando você lista duas tabelas na cláusula FROM sem especificar uma condição de junção explícita (como JOIN ON), o SQL realiza um produto cartesiano. Isso significa que cada linha da primeira tabela é combinada com cada linha da segunda tabela, criando todas as combinações possíveis. Em seguida, a cláusula WHERE atua como um filtro, removendo as linhas que não atendem à condição especificada.

  • (A) Incorreta: Esta alternativa não reflete a lógica do produto cartesiano seguido da filtragem.
  • (B) Incorreta: Esta alternativa não reflete a lógica do produto cartesiano seguido da filtragem.
  • (C) Correta: A tabela N possui 100 linhas (de 1 a 100). A cláusula from N n1, N n2 realiza um produto cartesiano entre a tabela N e ela mesma. Isso resulta em 100×100=10.000100 \times 100 = 10.000 combinações de linhas. A condição where n1.numero <> n2.numero filtra essas combinações, removendo todas as linhas onde n1.numero é igual a n2.numero. Existem exatamente 100 dessas combinações (1 com 1, 2 com 2, ..., 100 com 100). Portanto, o número de linhas restantes é $10.000 - 100 = 9.900$.
  • (D) Incorreta: Esta alternativa não reflete a lógica do produto cartesiano seguido da filtragem.
  • (E) Incorreta: Esta é a armadilha da banca. 10.000 seria o número de linhas se não houvesse a cláusula WHERE. Essa alternativa representa o produto cartesiano completo antes de qualquer filtragem, ignorando a condição n1.numero <> n2.numero.

Fonte: FGV SMF-RJ 2023 - Manhã (P1) Fiscal de Rendas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho