As tabelas a seguir compõem um banco de dados simplificado ...

Próximas questões
Com base no mesmo assunto
Q892483 Banco de Dados

As tabelas a seguir compõem um banco de dados simplificado de um banco comercial, onde o campo sublinhado indica a chave primária. É possível que uma conta tenha vários clientes, e que um cliente tenha várias contas.


Cliente(idCliente,nomeCliente)

Conta(idConta,ultimoSaldo)

ContaCliente(idConta,idCliente)


Que comando SQL lista todos os nomes de clientes com mais de R$ 2.000,00 na conta?

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C. Para resolver essa questão, é necessário compreender os conceitos de junção de tabelas (JOIN) em SQL e saber como aplicar condições de filtragem de dados com a cláusula WHERE. O objetivo do comando SQL é listar todos os clientes com saldo superior a R$2.000,00 nas suas contas, considerando que um cliente pode ter várias contas e uma conta pode pertencer a vários clientes.

A resposta correta utiliza a sintaxe de junções implícitas, cruzando as tabelas Cliente, ContaCliente e Conta através das chaves estrangeiras e primárias correspondentes. O filtro do saldo é aplicado corretamente com a condição ultimoSaldo > 2000.

O comando correto e formatado é:

SELECT nomeCliente 
FROM Cliente c, ContaCliente cc, Conta cs 
WHERE c.idCliente = cc.idCliente 
AND cc.idConta = cs.idConta 
AND cs.ultimoSaldo > 2000;

Neste comando, é dada a junção das tabelas através dos identificadores dos clientes (c.idCliente = cc.idCliente) e das contas (cc.idConta = cs.idConta), garantindo que os dados selecionados sejam da mesma entidade em todas as tabelas. A cláusula WHERE filtra os resultados para incluir somente aqueles clientes cujos saldos em suas respectivas contas são maiores que R$2.000,00.

As demais alternativas são incorretas porque apresentam erros na sintaxe ou na forma de realizar a junção entre as tabelas, como a falta de alias apropriados, uso inadequado do INNER JOIN ou condições de junção malformadas.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

GABARITO:

(C) SELECT nomeCliente FROM Cliente c, ContaCliente

cc, Conta cs WHERE c.idCliente=cc.idCliente AND

cc.idConta=cs.idConta AND cs.ultimoSaldo > 2000;

Nossa luta não será em vão! Boa sorte a todos!

Força, não desista!

No caso... Não se usa INNER JOIN assim ?

Galera, a sintaxe do join é

JOIN [tabela referenciada] ON [condição para a associação]

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo