Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2023
Banco de Dados›Consultas e Comandos em SQL
Código
qa537673
Banca
FUNDATEC
Órgão
IFC
Ano
2023
Cargo
PEBTT ( )
Analise a tabela pessoa abaixo:
ID
NOME
IDADE
1
Maria da Silva
35
2
Mário Soares
55
3
João Medeiros
43
Tabela: pessoa
Assinale a instrução por meio da linguagem de consulta estruturada (SQL), a fim de buscar todas as pessoas com nome iniciando com a letra “M” e com idade acima de 45 anos.
Aselect * from pessoa where nome == ‘M’ && idade > 45
Bselect * from table pessoa where nome start ‘M’ && idade >= 45
Cselect * from pessoa where nome like ‘M%’ and idade > 45
Dselect * from pessoa where nome like ‘%M’ and idade > 45
Eselect * from pessoa where nome like ‘M%’ && idade > 45
Revelar gabarito e comentário▾
GabaritoC — select * from pessoa where nome like ‘M%’ and idade > 45
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”.
Consultas SQL: filtros com LIKE e operadores lógicos
Gabarito: letra C. A instrução correta é select * from pessoa where nome like 'M%' and idade > 45, pois combina o operador LIKE com o curinga % para buscar nomes que começam com a letra "M" e o operador relacional > para filtrar idades estritamente acima de 45 anos. As demais alternativas erram na sintaxe do operador de igualdade (==), na palavra-chave table, no posicionamento do curinga (%M busca nomes que terminam com "M") ou no uso de && em vez de AND.
A linguagem SQL (Structured Query Language) é o padrão para consultar e manipular bancos de dados relacionais. Para filtrar registros, usamos a cláusula WHERE, que aceita condições combinadas por operadores lógicos. O operador AND exige que todas as condições sejam verdadeiras simultaneamente — exatamente o que o enunciado pede: nome iniciando com "M" e idade acima de 45. Já o operador OR retornaria registros que atendessem a qualquer uma das condições.
Para buscar padrões em strings, o SQL oferece o operador LIKE, usado com caracteres curinga. O curinga % representa qualquer sequência de caracteres (inclusive vazia). Assim:
LIKE 'M%' → nomes que começam com "M" (o % substitui o restante do nome).
LIKE '%M' → nomes que terminam com "M" (o % substitui o início).
LIKE '%M%' → nomes que contêm "M" em qualquer posição.
No caso da tabela pessoa, a consulta SELECT * FROM pessoa WHERE nome LIKE 'M%' AND idade > 45 retornaria apenas o registro de Mário Soares (idade 55), pois Maria da Silva tem 35 anos (não atende à condição de idade) e João Medeiros não começa com "M".
A pegadinha central desta questão está em dois pontos: (1) o uso de && em vez de AND — && não é operador lógico válido em SQL padrão (é usado em algumas linguagens de programação, como C e Java); (2) a posição do curinga % — 'M%' filtra nomes que começam com M, enquanto '%M' filtra nomes que terminam com M. A banca explora exatamente essa confusão entre prefixo e sufixo.
Guarde o critério decisivo: LIKE 'M%' = começa com M e AND = todas as condições devem ser verdadeiras. É com essa régua que as alternativas serão julgadas.
Operador LIKE
1'M%' → começa com M
2'%M' → termina com M
3'%M%' → contém M
4Operadores lógicos SQL
AND (válido)
OR (válido)
NOT (válido)
&& (inválido)
|| (inválido)
5Sintaxe SELECT
FROM (correto)
table FROM (inválido)
== (inválido)
= (correto)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Usa == para comparação de igualdade, que não é um operador válido em SQL (o correto é =). Além disso, 'M' sem curinga busca exatamente a string "M", não nomes que começam com M, e && não é o operador lógico do SQL (o correto é AND).
Alternativa B — ❌ Incorreta
A palavra-chave table não faz parte da sintaxe do SELECT — o correto é apenas FROM pessoa. Além disso, start não é um operador SQL para busca de padrões (o correto é LIKE), e >= 45 incluiria a idade 45, enquanto o enunciado pede acima de 45 (estritamente maior, >).
Alternativa C — ✅ Correta ⟵ GABARITO
A sintaxe está correta: SELECT * FROM pessoa seleciona todas as colunas da tabela; WHERE nome LIKE 'M%' filtra nomes que começam com "M" (o curinga % representa o restante); AND idade > 45 exige que a idade seja estritamente maior que 45. O operador AND combina as duas condições corretamente.
Alternativa D — ❌ Incorreta
O curinga está na posição errada: LIKE '%M' busca nomes que terminam com a letra "M", não que começam. O enunciado pede nomes iniciando com "M", o que exigiria LIKE 'M%'.
Alternativa E — ❌ Incorreta
A condição LIKE 'M%' está correta, mas o operador && não é válido em SQL — o correto é AND. O SQL padrão usa AND, OR e NOT como operadores lógicos.
NÃO CAIA NESSA!
A banca troca o operador lógico AND por && (válido em linguagens de programação, não em SQL) e inverte a posição do curinga: 'M%' (começa com M) versus '%M' (termina com M). Na prova, desconfie sempre de &&, == e start — nenhum deles é sintaxe SQL válida. Com treino, você identifica essas trocas de longe 💪
PEGA ESSA DICA!
Para fixar, lembre-se: o curinga % "corre" para o lado onde está o texto variável. 'M%' → o % está à direita, então o texto fixo "M" está no início (prefixo). '%M' → o % está à esquerda, então o texto fixo "M" está no fim (sufixo). E os operadores lógicos do SQL são AND, OR, NOT — nunca &&, ||, !.