insert into candidato values (1,'111','Ferreira'),(2,'333','Andrade'), (3,'555','Verçosa'),(4,'222','Bastos'), (5,'444','Lavor');
select nome from candidato where nome like '__r%' order by num_inscr asc
Assinale a opção que apresenta a ordem correta dos nomes impressos pelo comando SELECT.
A‘Andrade’, ‘Ferreira’ e ‘Verçosa’.
B‘Ferreira’ e ‘Andrade’.
C‘Ferreira’ e ‘Verçosa’.
D‘Lavor’.
E‘Verçosa’ e ‘Ferreira’.
Revelar gabarito e comentário▾
GabaritoC — ‘Ferreira’ e ‘Verçosa’.
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”.
Operador LIKE e curingas no SQL
Gabarito: letra C — 'Ferreira' e 'Verçosa'. O comando SELECT filtra os nomes que possuem exatamente dois caracteres antes da letra 'r' (padrão '__r%'), e a cláusula ORDER BY num_inscr asc ordena o resultado pelo número de inscrição em ordem crescente. Apenas 'Ferreira' (num_inscr=1) e 'Verçosa' (num_inscr=3) atendem ao padrão, e nessa ordem.
O operador LIKE é usado em SQL para comparar uma string com um padrão, utilizando dois curingas principais: o % (porcentagem) e o _ (sublinhado). O % representa qualquer sequência de caracteres (inclusive nenhum), enquanto o _ representa exatamente um caractere qualquer. No padrão '__r%', temos dois sublinhados seguidos da letra 'r' e depois um %. Isso significa que a string deve começar com dois caracteres quaisquer, seguidos da letra 'r', e depois pode ter qualquer coisa (inclusive nada).
Vamos aplicar isso aos nomes da tabela candidato:
'Ferreira': F-e-r-r-e-i-r-a → os dois primeiros caracteres são 'F' e 'e', o terceiro é 'r' → atende ao padrão.
'Andrade': A-n-d-r-a-d-e → os dois primeiros são 'A' e 'n', o terceiro é 'd' → não atende.
'Verçosa': V-e-r-ç-o-s-a → os dois primeiros são 'V' e 'e', o terceiro é 'r' → atende.
'Bastos': B-a-s-t-o-s → os dois primeiros são 'B' e 'a', o terceiro é 's' → não atende.
'Lavor': L-a-v-o-r → os dois primeiros são 'L' e 'a', o terceiro é 'v' → não atende.
Portanto, apenas 'Ferreira' e 'Verçosa' são selecionados. A cláusula ORDER BY num_inscr asc ordena pelo número de inscrição: 'Ferreira' tem num_inscr = 1 e 'Verçosa' tem num_inscr = 3. Logo, a ordem correta é 'Ferreira' primeiro e 'Verçosa' depois.
A pegadinha clássica dessa questão é confundir o curinga _ com o %. O _ casa exatamente um caractere, enquanto o % casa zero ou mais. Se o padrão fosse '%r%', todos os nomes que contêm a letra 'r' em qualquer posição seriam retornados (Ferreira, Andrade, Verçosa, Lavor). Mas com '__r%', a letra 'r' deve ser o terceiro caractere obrigatoriamente. Outra pegadinha é inverter a ordem de classificação: o ORDER BY é asc (crescente), não desc (decrescente).
Guarde a diferença entre os curingas: _ = um caractere, % = vários (ou nenhum). É exatamente nessa distinção que as alternativas se dividem.
12 caracteres quaisquer (_)
23º caractere = 'r'
3Depois, qualquer coisa (%)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Inclui 'Andrade', que não atende ao padrão '__r%' porque a letra 'r' não é o terceiro caractere do nome (em 'Andrade', o terceiro é 'd'). O candidato que marca esta opção provavelmente confundiu o _ com %, achando que bastaria conter a letra 'r' em qualquer posição.
Alternativa B — ❌ Incorreta
Lista 'Ferreira' e 'Andrade', mas 'Andrade' não atende ao padrão. Além disso, omite 'Verçosa', que deveria ser incluída. O erro aqui é duplo: incluir quem não deve e excluir quem deve.
Alternativa C — ✅ Correta ⟵ GABARITO
'Ferreira' (num_inscr=1) e 'Verçosa' (num_inscr=3) são os únicos nomes que têm a letra 'r' como terceiro caractere. A ordenação por num_inscr asc coloca 'Ferreira' antes de 'Verçosa'. A alternativa espelha exatamente o resultado da consulta.
Alternativa D — ❌ Incorreta
'Lavor' não atende ao padrão '__r%': o terceiro caractere é 'v', não 'r'. Quem marca esta opção provavelmente contou os caracteres de forma errada ou confundiu a posição da letra 'r'.
Alternativa E — ❌ Incorreta
Inverte a ordem de classificação: coloca 'Verçosa' antes de 'Ferreira'. O ORDER BY num_inscr asc exige que o menor número venha primeiro (1 antes de 3), então 'Ferreira' deve aparecer antes. A banca explora aqui o descuido com a direção da ordenação.
NÃO CAIA NESSA!
A banca troca o curinga _ (um caractere) pelo % (vários caracteres) e inverte a ordem do ORDER BY. No padrão '__r%', a letra 'r' é obrigatoriamente o terceiro caractere — não basta o nome conter 'r'. E o asc significa crescente: o menor num_inscr vem primeiro. Com treino, você enxerga essas trocas de longe 💪
PEGA ESSA DICA!
Para resolver questões com LIKE, escreva o padrão e teste caractere por caractere em cada nome. Conte os _ (cada um = 1 posição) e veja onde o % começa (a partir dali, qualquer coisa vale). Depois, aplique o ORDER BY na ordem pedida — asc ou desc — e confira a sequência final.