SóProvas


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

Uma tabela de banco de dados denominada TTT, com atributos A, B e C, contém em sua instância sete registros, com os seguintes valores:
1,2,1
2,3,4
5,4,4
8,7,5
4,3,2
2,3,4
4,3,2

O número de registros removidos pela execução do comando
delete from TTT
where exists
(select * FROM TTT t2
where TTT.a = t2.a
and TTT.b = t2.b)
seria:

Alternativas
Comentários
  • Essa questão pede um pouquinho de fosfato nosso. Como sabemos, o uso de SUBSELECT pode ser feito dentro do SELECT, e que neste caso, o SUBSELECT deveria estar amarrado com o SELECT de fora. Essa amarração geralmente se faz pela PK e serve para garantir que o SUBSELECT só retorne registros que estejam amarrados pela chave PK. Vamos pensar assim: O Subselect não pode ser executado sozinho e o select de fora não pode ser executado sozinho, isso traria resultados diferentes, por isso amarramos com a PK, como? A PK do subselect tem que ser igual a PK do select de fora. Simples, né?

    Na questão, ele está fazendo a mesma coisa, ele está amarrando a coluna A e a coluna B de dentro com a coluna A e B de fora. Como sabemos que o EXISTS retorna TRUE se o select retornar linhas, então podemos concluir que se ele amarrou a chave de dentro com a chave de fora, ele sempre irá retornar registros, logo o EXISTS retornará TRUE e o DELETE ocorrerá na tabela TODA!

  • Com o EXISTS toda a comparação verdadeira do where trás o resultado para o delete realizar a sua função.

  • Só olhando as alternativas daria para responder bem rápido. Como tem um exist dentro do delete, então a resposta poderia ser todos os registros ou nenhum, já que o exists retorna falso ou true.

  • Cuidado, gente. Tem muito comentário errado nessa questão.

    O motivo de ter deletado todos é porque está sendo comparado 2 tabelas iguais, portanto, um registro de uma tabela será igual a ele mesmo da outra tabela.

  • EXISTS, além de testar se a condição é verdadeira, traz como retorno os dados da consulta.