SóProvas


ID
1504021
Banca
FGV
Órgão
TJ-BA
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Considere que as instâncias das tabelas T1, T2 e T3 têm, respectivamente, 1.000, 10.000 e 100.000 registros. O comando SQL

select 1 from t1
union
select 2 from t2
union
select 3 from t3

produz um resultado com:

Alternativas
Comentários
  • No primeiro select retorna todos os 1.000 valores como 1, no segundo os 10.000 como 2, e o terceiro os 100.000 como 3.

    Quando ele faz o union ele retorna apenas 3 linhas. (os 3 diferentes diferentes). Letra (a).

    Agora....

    Se fosse o union all traria todos os resultados: 1.000+10.000+1000.000


  • Não sei se estou errada,mas não retornaria a 1ª linha de T1,a 2ª de T2 e a 3ª de T3?

  • Como já foi dito na primeira retorna tudo 1, na segunda tudo 2 e na terceira tudo 3. O union elimina as repetições e assim, fica 1, 2, 3 linhas.

  • Na verdade, ao escrever "SELECT 1 FROM T1", você instrui o SGBD a ignorar os conteúdos das colunas dessa tabela, e retornar a constante 1 para cada uma das linhas existentes nela, ou seja 1.000 linhas, cada uma contendo o valor 1. O mesmo acontece para "SELECT 2 FROM T2": 10.000 linhas contendo uma única coluna com o valor 2. E assim também acontece para "SELECT 3 FROM T3": 100.000 linhas contendo o valor 3.

    Ao aplicar a união dos resultados (UNION), apenas os valores únicos sao retornados: uma linha contendo 1, outra contendo 2, e a última contendo 3.

    3 linhas, alternativa A

  • O problema é que a resposta depende de a tabela T1 possuir apenas valores 1, ou seja, 1000 valores "1"; a tabela T2 possuir apenas valores 2, ou seja, 10000 valores "2"; e a tabela T3 possuir apenas valores 3, ou seja, 100.000 valores "3"; o problema é que o comando da questão não informa isso.

    Ai, fica complicado. Passivel de recurso, na minha opinião.