FC ConcursosFC Concursos

Questão FC369496

Considere uma tabela relacional T, com uma única coluna intitulada número, cuja instância de 10 linhas contém os números inteiros de 1 até 10, um em cada linha, sem repetição. Ness

Linguagem SQL

FGV · 2024

Considere uma tabela relacional T, com uma única coluna intitulada número, cuja instância de 10 linhas contém os números inteiros de 1 até 10, um em cada linha, sem repetição.

 

Nessas condições, foram executados os três comandos SQL exibidos a seguir.

 

select x.número * y.número A
from T x, T y
where y.número = x.número order by 1

 

select x.número * x.número A
from T x order by 1

 

select distinct x.número * x.número A
from T x

 

O número de linhas produzidas em cada comando, na ordem e sem contar a linha de títulos, é:

  1. 1, 10, 10;
  2. 10, 10, 10;
  3. 10, 100, 10;
  4. 100, 10, 1;
  5. 100, 10, 10.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

Na tabela há exatamente 10 valores distintos: de 1 até 10.

No primeiro comando, trata-se de um self-join com a condição de igualdade (y.número = x.número). Para cada valor \(n\) existe exatamente um par (x,y) com esse mesmo \(n\), gerando 10 linhas, cada uma com o produto \(n\times n\).

No segundo comando, a expressão \(x.número \times x.número\) é avaliada para cada tupla de T. Como a tabela tem uma tupla por número, produz exatamente 10 linhas (uma por valor de 1 a 10).

No terceiro comando, o DISTINCT elimina duplicatas, mas os quadrados \(n^2\) para \(n=1\) a \(10\) são todos distintos (função crescente em inteiros positivos), portanto permanecem 10 linhas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo