SóProvas


ID
2619847
Banca
FGV
Órgão
Câmara de Salvador - BA
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Considere os comandos SQL a seguir.
I.
select r.* FROM R where
exists (select * FROM S where r.a = s.c)
II.
select r.* FROM R where
(select count(*)
FROM S where r.a = s.c) > 0

III.
select r.* FROM R
where r.a in (select c FROM S)

IV.
select r.* FROM R where
exists (select 1 FROM S where r.a = s.c)

V.
select distinct r.* FROM R, S
where r.a = s.c

Sabe-se que quatro desses comandos sempre produzem resultados com conteúdos idênticos, mesmo considerando-se diferentes instâncias de R e S.

O comando que NÃO faz parte desse grupo é:

Alternativas
Comentários
  • distinct

    Em SQL é uma clásula que:

    Retorna os registros distintos de uma mesma tabela

    Ignora os repetidos

     

    Letra E

  • Por que a segunda opção está correta? O count vai retornar um número de registros, ou não?
  • I, II e IV são iguais, mas o III não é igual. I, II e IV é: "retorne TUDO da tabela R se ouver alguma relação entre R e S", já o III é: "Retorne APENAS  os registro de R que tiverem relação com S". Estou errado? Alguém poderia me explicar?

  • Não entendi essa questão, alguém me explica? 

  • Tanto o count quanto o in tem a mesma função que o exists em suas cláusulas, validam a condição para que o select seja realizado.

  • É uma pegadinha.

    O examinador dá a entender que é para validar os joins, mas todos eles estão ok.

    O erro da V é que ele coloca um distinct e o resultado final é alterado. Acredito que se não fosse isso todas seriam iguais

  • Parafiscalidade ? Acredito que o colega confundiu com extrafiscalidade!