SóProvas


ID
3265078
Banca
FCM
Órgão
Prefeitura de Caranaíba - MG
Ano
2019
Provas
Disciplina
Banco de Dados
Assuntos

Suponha que se deseja realizar a seguinte busca no banco de dados:

Encontrar todos os clientes que têm uma conta em todas as agências da cidade Belo Horizonte.

É correto afirmar que a consulta SQL que realiza essa busca é

Alternativas
Comentários
  • As alternativas A,B e C só mudam UMA PALAVRA, respectivamente not exists, exists e not in. A alternativa D apresenta um método diferente.

    No SELECT interno buscamos todas as agencias em que o cliente tem conta.

    No SELECT intermediário buscamos todas as agências de Belo Horizonte, exceto aquelas que o cliente tem conta.

    Vamos imaginar um exemplo, Na cidade de BH temos 3 agencias X,Y,Z. João possui conta na agencia X e Maria possui conta em todas as 3 agências. No SELECT interno teremos como resultado {X} para João e {X,Y,Z} para Maria. No SELECT intermediário, teremos como resultado {Y,Z} para João e {} para Maria.

    No SELECT externo, na letra a, com a cláusula NOT EXISTS, buscamos todos os clientes onde o SELECT intermediário não retornou nenhum resultado. Ou seja, retornará apenas Maria, que é a ideia aqui.

    Na letra b, com a cláusula EXISTS, retornará João, que seria um resultado incorreto.

    Na letra c, com a cláusula NOT IN, teoricamente teríamos a mesma resposta que a letra a, porém a cláusula NOT IN funciona diferente da NOT EXISTS quando temos valores NULL envolvidos, maiores explicações no link sqlinthewild.co.za/index.php/2010/02/18/not-exists-vs-not-in/

    Claro que, na hora da prova essa análise, com tempo limitado seria bem mais precária e o chute provavelmente seria na letra D.

    Gab. A

    Qualquer erro, por favor me avise.