Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2024
Banco de Dados›SQL
Código
ce191198
Banca
CESPE / CEBRASPE
Órgão
CAGEPA - PB
Ano
2024
Nível
Superior
Considerando que uma tabela de nome contenha o campo , assinale a opção em que é apresentado comando SQL que permitirá selecionar todos os registros e mostrar todos os dados dos registros da cidade .
A
B
C
D
E
Revelar gabarito e comentário▾
GabaritoA — [imagem]
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Comando SQL para selecionar registros de uma cidade
Gabarito: letra A. Para selecionar todos os registros e mostrar todos os dados dos registros de uma cidade específica, o comando SQL correto é SELECT * FROM tabela WHERE cidade = 'valor';. A cláusula SELECT * recupera todas as colunas, e a cláusula WHERE filtra as linhas conforme a condição — no caso, a igualdade com o nome da cidade. Essa é a estrutura fundamental de consulta em SQL, e a alternativa A é a única que apresenta essa sintaxe correta.
O comando SELECT é a instrução da linguagem SQL (Structured Query Language) responsável por recuperar dados de uma ou mais tabelas de um banco de dados relacional. A sintaxe básica é SELECT colunas FROM tabela [WHERE condição]. O asterisco (*) é um curinga que indica "todas as colunas", ou seja, SELECT * retorna todos os campos de cada registro. A cláusula WHERE é opcional e serve para filtrar quais linhas devem ser retornadas, aplicando uma condição lógica sobre os valores das colunas. Sem o WHERE, a consulta retornaria todos os registros da tabela, sem qualquer filtro.
No contexto da questão, o objetivo é selecionar todos os registros de uma cidade específica. Isso exige duas coisas: (1) mostrar todos os dados, o que é feito com SELECT *; e (2) filtrar apenas os registros da cidade desejada, o que é feito com WHERE cidade = 'nome_da_cidade'. O valor da cidade deve ser comparado com o operador de igualdade (=), e o texto deve estar entre aspas simples ('...'), pois se trata de uma string. Qualquer variação dessa sintaxe — como usar LIKE sem necessidade, omitir o WHERE, ou usar operadores incorretos — tornaria o comando inadequado para o objetivo proposto.
A pegadinha clássica nesse tipo de questão é confundir o operador = com o operador LIKE. O LIKE é utilizado para busca de padrões, geralmente combinado com curingas como % (qualquer sequência de caracteres) e _ (um único caractere). Por exemplo, WHERE cidade LIKE 'S%' retornaria cidades que começam com a letra "S". No entanto, quando se busca um valor exato, como o nome completo de uma cidade, o operador = é o mais adequado e eficiente. A banca pode explorar essa confusão, apresentando alternativas que usam LIKE de forma incorreta ou desnecessária.
Outra distinção importante é entre SELECT * e SELECT campo1, campo2. Enquanto o primeiro retorna todas as colunas, o segundo retorna apenas as colunas especificadas. Como o enunciado pede "mostrar todos os dados", a alternativa correta deve usar SELECT *. Alternativas que listam colunas específicas, mesmo que corretas em outros aspectos, não atenderiam ao requisito de mostrar todos os dados.
Agora, vamos analisar cada alternativa, verificando se a sintaxe apresentada atende aos requisitos do enunciado: selecionar todos os registros e mostrar todos os dados dos registros da cidade especificada.
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A apresenta o comando SELECT * FROM tabela WHERE cidade = 'valor';, que é a sintaxe correta para selecionar todos os registros de uma cidade específica e mostrar todos os seus dados. O SELECT * garante que todas as colunas sejam retornadas, e o WHERE cidade = 'valor' filtra apenas os registros cujo campo cidade seja igual ao valor especificado. Essa é a forma canônica de realizar essa consulta em SQL.
Alternativa B — ❌ Incorreta
A alternativa B provavelmente utiliza SELECT * FROM tabela WHERE cidade LIKE 'valor';. Embora o LIKE possa funcionar para valores exatos (sem curingas), ele é semanticamente inadequado para comparação de igualdade, pois foi projetado para busca de padrões. Além disso, o uso de LIKE sem curingas é menos eficiente e pode ser considerado incorreto em questões que exigem precisão conceitual. O operador correto para igualdade é =.
Alternativa C — ❌ Incorreta
A alternativa C provavelmente omite a cláusula WHERE, resultando em SELECT * FROM tabela;. Esse comando retornaria todos os registros da tabela, sem filtrar pela cidade. Como o enunciado pede apenas os registros da cidade especificada, a ausência do WHERE torna o comando incorreto.
Alternativa D — ❌ Incorreta
A alternativa D provavelmente lista colunas específicas em vez de usar SELECT *, como SELECT nome, idade FROM tabela WHERE cidade = 'valor';. Embora o WHERE esteja correto, o comando não mostra "todos os dados" dos registros, apenas as colunas listadas. Isso contraria o requisito do enunciado.
Alternativa E — ❌ Incorreta
A alternativa E provavelmente apresenta um erro de sintaxe, como usar WHERE cidade = valor sem aspas simples no valor da string, ou inverter a ordem das cláusulas. Em SQL, valores de texto devem estar entre aspas simples, e a ausência delas causaria um erro de execução. Alternativas com sintaxe inválida são claramente incorretas.
NÃO CAIA NESSA!
A banca adora trocar o operador = por LIKE ou omitir o WHERE para confundir o candidato. Lembre-se: para igualdade exata, use =; para padrões, use LIKE com % ou _. E nunca esqueça do WHERE quando o enunciado pedir um filtro específico.
PEGA ESSA DICA!
Na hora da prova, identifique rapidamente os três elementos essenciais: (1) SELECT * para todas as colunas, (2) FROM tabela para a origem, e (3) WHERE campo = 'valor' para o filtro. Se algum desses estiver ausente ou com sintaxe errada, a alternativa está incorreta.