Pular para o conteúdo principal

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

Banco de DadosSQL
Código
fg045098
Banca
FGV
Órgão
TCE-AM
Ano
2021
Nível
Superior
Cargo
Auditor Técnico de Controle Externo - Tecnologia da Informação - 2ª dia
Considerando-se a instância da tabela T (descrita anteriormente), analise o comando SQL abaixo.select distinct * from T t1, T t2, T t3A execução desse comando produz um resultado que, além da linha de títulos, contém:
  1. A8 linhas;
  2. B24 linhas;
  3. C32 linhas;
  4. D64 linhas;
  5. E128 linhas.
Revelar gabarito e comentário

GabaritoD — 64 linhas;

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

SQL: Produto cartesiano com DISTINCT

Gabarito: letra D. A consulta SELECT DISTINCT * FROM T t1, T t2, T t3 realiza o produto cartesiano da tabela T com ela mesma três vezes (aliases t1, t2, t3). Se T possui n linhas, o resultado antes do DISTINCT tem n³ linhas. Como as linhas de T são presumivelmente distintas (sem duplicatas), o DISTINCT não elimina nenhuma, resultando em n³ linhas. Considerando que a tabela T do enunciado possui 4 linhas (conforme a instância exibida, não reproduzida aqui), o resultado terá 4³ = 64 linhas.

A alternativa correta é a letra D (64 linhas). As demais alternativas correspondem a outros números de linhas que não condizem com o cálculo esperado:

  • 8 linhas (2³) – seria o caso se T tivesse 2 linhas.

  • 24 linhas (3 × 8) – não corresponde a uma potência cúbica inteira.

  • 32 linhas – 32 não é um cubo perfeito (próximo de 3,17³).

  • 128 linhas (2⁷) – seria o caso se T tivesse aproximadamente 5,04 linhas (não inteiro).

  1. 1Tabela T com n linhas
  2. 23 aliases (t1, t2, t3)
  3. 3n³ linhas brutas
  4. 4DISTINCT não elimina (linhas distintas)
  5. 5Resultado: n³ linhas
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

O candidato pode confundir o produto cartesiano com um JOIN, ou esquecer que o DISTINCT não altera o número de linhas se não houver duplicatas. Além disso, é comum errar o número de linhas da tabela original. Decore: produto cartesiano de k cópias de uma tabela com n linhas → n^k linhas.

Gabarito: letra D.

Link permanente: /questoes/fg045098