Pular para o conteúdo principal

Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2024

Banco de DadosSQL
Código
ce191198
Banca
CESPE / CEBRASPE
Órgão
CAGEPA - PB
Ano
2024
Nível
Superior
Considerando que uma tabela de nome Imagem associada para resolução da questão contenha o campo Imagem associada para resolução da questão, assinale a opção em que é apresentado comando SQL que permitirá selecionar todos os registros e mostrar todos os dados dos registros da cidade Imagem associada para resolução da questão.
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
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.

Gabarito: letra A

Link permanente: /questoes/ce191198