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