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, 10, 10;
- 10, 10, 10;
- 10, 100, 10;
- 100, 10, 1;
- 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