Considere um banco de dados relacional que contém uma tabel...
Qual consulta SQL retornará todos os clientes que possuem saldo maior que 1000 e que estão localizados na cidade de ‘São Paulo’?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Vamos analisar a questão apresentada, que envolve consultas em SQL para um banco de dados relacional. O tema central dessa questão é a construção de consultas SQL que utilizam condições para filtrar registros de uma tabela, com o objetivo de retornar dados específicos conforme os critérios estabelecidos. Para resolvê-la, é necessário entender como utilizar os comandos SELECT, FROM, WHERE e operadores lógicos como AND e OR.
A alternativa correta é a Alternativa D. Vamos entender por quê:
A alternativa D apresenta a consulta SQL: SELECT * FROM Clientes WHERE Saldo > 1000 AND Cidade = 'São Paulo';
SELECT *: Indica que queremos selecionar todas as colunas da tabela.FROM Clientes: Especifica que a tabela de onde os dados serão obtidos é a “Clientes”.WHERE Saldo > 1000 AND Cidade = 'São Paulo': Estabelece as condições para filtrar os registros, retornando apenas clientes com saldo maior que 1000 e que estão na cidade de 'São Paulo'. O operadorANDé usado para garantir que ambas as condições sejam verdadeiras simultaneamente.
Agora, vamos entender por que as outras alternativas estão incorretas:
Alternativa A: SELECT * FROM Clientes WHERE Saldo > 1000 OR Cidade = 'São Paulo';
A utilização do operador OR implica que a consulta retornará clientes que têm saldo maior que 1000 ou que estão em 'São Paulo'. Isso não atende ao critério de ambos simultaneamente.
Alternativa B: SELECT Nome, Cidade FROM Clientes WHERE Saldo < 1000 AND Cidade = 'São Paulo';
Essa consulta filtra clientes com saldo menor que 1000, o que é o oposto do necessário. Além disso, seleciona apenas as colunas 'Nome' e 'Cidade', enquanto precisamos de todos os dados dos clientes.
Alternativa C: Possui um pequeno erro no critério de saldo. Embora haja a seleção correta das colunas, a condição Saldo >= 1000 não exclui o valor 1000 do saldo, o que pode gerar um conjunto de dados não desejado se a exigência for estritamente maior que 1000.
Alternativa E: SELECT Nome, Cidade, Saldo FROM Clientes WHERE Cidade = 'São Paulo' AND Saldo <= 1000 ORDER BY Saldo DESC;
Esta consulta filtra clientes que têm saldo menor ou igual a 1000, o que não é o desejado. Além disso, ordena os resultados pelo saldo em ordem decrescente, o que não foi solicitado.
Essa análise permite entender a importância de interpretar corretamente as condições e operadores em consultas SQL.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
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 D
SELECT *: O enunciado pede "todos os clientes". Em SQL, o símbolo de asterisco (*) é utilizado para selecionar todas as colunas de uma tabela.
WHERE Saldo > 1000: Atende à condição de que o saldo deve ser estritamente maior que 1000.
AND: Como o enunciado exige que o cliente cumpra duas condições simultaneamente (saldo alto e estar em uma cidade específica), o operador lógico obrigatório é o AND.
Cidade = 'São Paulo': Filtra exatamente a cidade solicitada.
Retroceder Nunca Render-se Jamais !
Força e Fé !
Fortuna Audaces Sequitur !
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo