SóProvas


ID
1703659
Banca
FGV
Órgão
TCE-SE
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

                                            X                   Y   

                                          a   b              c   d 

                                          1   2              1   2

                                          3   3              3   4

                                          4   5              5   6

                                          5   7              7   8

                                                               9   1 

delete from y

where y.c in

(select a from x union select c from y)

Considerando-se as tabelas e o comando SQL mostrados acima, é correto concluir que o número de registros removidos da tabela Y pela execução desse comando é: 

Alternativas
Comentários
  • select a from x union select c from y,  vai trazer de x: 1,3,4,5. De y: 1,3,5,7,9. 

    Como union retira as repetidas,a query interna ficará: 1,3,4,5,7 e 9. Sendo assim irá deletar todas as linhas de Y.

  • delete from y >> apaga da tabela Y as linhas especificadas nas condições abaixo

    where y.c in >>  o operador "in" vai comparar y.c com o resultado da sub consulta abaixo

    (select a from x union select c from y) >> vai retornar 1, 3, 4, 5, 7 e 9. O operador "union" vai combinar o resultado das tabelas x e y. O resultado a principio seria 1,1,3,3,4,5,5,7,9, mais por padrão é como se o union já desse um SELECT DISTINCT automaticamente, então o resultado dessa sub consulta será 1,3,4,5,7 e 9.

    Assim serão excluídas de y.c todas as linhas que contenham 1,3,4,5,7 e 9, ou seja todas as 5 linhas.