Pular para o conteúdo principal

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

Banco de DadosSQL
Código
fg070558
Banca
FGV
Órgão
SMF-RJ
Ano
2023
Nível
Superior
Cargo
Fiscal de Rendas
Analise o comando SQL a seguir, que faz referência à tabela N descrita anteriormente.select n1.numero* n2.numerofrom N n1, N n2where n1.numero <> n2.numeroO número de linhas do resultado produzido pela execução desse comando, sem contar a linha de títulos, é:
  1. A9.000
  2. B9.110
  3. C9.900
  4. D9.991
  5. E10.000
Revelar gabarito e comentário

GabaritoC — 9.900

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

Produto Cartesiano com Condição de Desigualdade em SQL

Gabarito: letra C — 9.900 linhas. O comando SELECT n1.numero * n2.numero FROM N n1, N n2 WHERE n1.numero <> n2.numero realiza um produto cartesiano da tabela N (100 linhas) consigo mesma, gerando 100 × 100 = 10.000 combinações. A cláusula WHERE filtra os pares em que os números são diferentes, eliminando os 100 casos em que n1.numero = n2.numero. Portanto, o resultado tem 10.000 − 100 = 9.900 linhas.

A banca testa o entendimento de produto cartesiano em auto-junção e o impacto de uma condição simples de desigualdade. O cálculo é direto:

  • Total de combinações sem filtro: 100 × 100 = 10.000.

  • Pares excluídos (números iguais): 100 (um para cada número de 1 a 100).

  • Linhas resultantes: 10.000 − 100 = 9.900.

Alternativa A — ❌ Incorreta (9.000)

Este valor não corresponde a nenhuma operação direta. Talvez o candidato tenha subtraído 1.000 em vez de 100, ou multiplicado 100 × 90 (esquecendo que a segunda tabela também tem 100 linhas).

Alternativa B — ❌ Incorreta (9.110)

Número sem relação com o cálculo correto. Não há justificativa lógica para esse valor nas operações do comando.

Alternativa C — ✅ Correta ⟵ GABARITO

Conforme demonstrado: 10.000 − 100 = 9.900 linhas.

Alternativa D — ❌ Incorreta (9.991)

Muito próximo de 10.000, poderia ser o resultado se apenas uma linha fosse excluída (por exemplo, se a condição fosse = em vez de <>), mas não é o caso.

Alternativa E — ❌ Incorreta (10.000)

Esse seria o total sem a cláusula WHERE (produto cartesiano puro). O filtro <> reduz em 100 linhas.

PEGA ESSA DICA!

Em questões de produto cartesiano com auto-junção, lembre-se de contar tanto as linhas da tabela original quanto o número de pares que a condição elimina. Aqui, a condição <> remove exatamente uma linha para cada valor (o par consigo mesmo), ou seja, 100 eliminações.

Gabarito: letra C — 9.900.

Link permanente: /questoes/fg070558