Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2023
Banco de Dados›Consultas e Comandos em SQL
Código
vu195636
Banca
VUNESP
Órgão
TJM SP
Ano
2023
Cargo
Ana SJ ( )
Considere a seguinte consulta SQL feita em um banco de dados relacional: SELECT Operadora, Plano FROM Conta WHERE Plano LIKE ‘Special%’ ORDER BY Operadora Um possível resultado obtido a partir dessa consulta é
AOperadora Plano Abc Special Plus Camel Special X Lotus Special 1
BOperadora Plano Lotus Special 1 Camel Special X Abc Top Special Plus
COperadora Plano Lotus Special 1 Camel Special X Abc Top Special Plus
DOperadora Plano Lotus Plano Special 1 Camel Plano Special X Abc Top Special Plus
EOperadora Plano Abc 1 Special Camel X Special Lotus Top Plus Special
Revelar gabarito e comentário▾
GabaritoA — Operadora Plano
Abc Special Plus
Camel Special X
Lotus Special 1
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 no SQL: curingas % e _
Gabarito: letra A. A consulta SELECT Operadora, Plano FROM Conta WHERE Plano LIKE 'Special%' ORDER BY Operadora retorna apenas as linhas em que o valor da coluna Planocomeça com a string literal 'Special' (o curinga % casa com qualquer sequência de caracteres, inclusive vazia), e o resultado é ordenado alfabeticamente pela coluna Operadora. A alternativa A é a única que apresenta exclusivamente planos iniciados por "Special" (Special Plus, Special X, Special 1) e as operadoras em ordem alfabética (Abc, Camel, Lotus).
O operador LIKE é um dos recursos mais cobrados em provas de SQL justamente porque exige que o candidato domine os dois curingas: % (porcentagem) e _ (underscore). O % representa qualquer sequência de caracteres, inclusive a sequência vazia — ou seja, casa com zero, um ou vários caracteres. Já o _ representa exatamente um único caractere. Essa distinção é a chave para resolver qualquer questão que envolva busca por padrão em strings.
Na consulta em análise, o padrão é 'Special%'. Isso significa que o valor da coluna Plano deve começar com a palavra "Special" e pode ter qualquer coisa depois (inclusive nada). Portanto, planos como "Special Plus", "Special X" e "Special 1" atendem à condição. Por outro lado, planos como "Top Special Plus" (que começa com "Top"), "Plano Special 1" (que começa com "Plano") ou "1 Special" (que começa com "1") não atendem, pois a string não começa com "Special".
Além do filtro, a consulta usa ORDER BY Operadora, que ordena o resultado em ordem alfabética crescente (A-Z) pela coluna Operadora. Isso significa que, entre as linhas que passaram no filtro, a ordenação é feita pelo nome da operadora, não pelo plano. No caso da alternativa A, as operadoras são Abc, Camel e Lotus — exatamente em ordem alfabética.
A pegadinha clássica desta questão é o candidato confundir o comportamento do % com o do _, ou esquecer que o LIKE exige que o padrão case com a string desde o início quando não há curinga no começo. Outra armadilha é ignorar o ORDER BY e aceitar uma alternativa que tenha os planos corretos, mas as operadoras fora de ordem alfabética. Guarde a fronteira: % = qualquer quantidade de caracteres (inclusive zero); _ = exatamente um caractere. É exatamente nessa distinção que as alternativas se dividem.
Operador LIKE
1Curingas
% (qualquer sequência, inclusive vazia)
_ (exatamente um caractere)
2Padrão 'Special%'
Deve começar com "Special"
% casa com o que vem depois
3ORDER BY Operadora
Ordem alfabética crescente (A-Z)
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
Esta é a única alternativa que atende simultaneamente às duas condições da consulta. Todos os planos listados (Special Plus, Special X, Special 1) começam com a string "Special", satisfazendo o LIKE 'Special%'. Além disso, as operadoras (Abc, Camel, Lotus) estão em ordem alfabética crescente, conforme o ORDER BY Operadora. Não há nenhuma linha que viole o filtro ou a ordenação.
Alternativa B — ❌ Incorreta
O erro está na linha da operadora Abc: o plano é "Top Special Plus", que não começa com "Special". A string "Top Special Plus" inicia com "Top", portanto não atende ao padrão LIKE 'Special%'. Além disso, mesmo que o filtro fosse ignorado, a ordenação estaria errada: Lotus, Camel, Abc não está em ordem alfabética (o correto seria Abc, Camel, Lotus).
Alternativa C — ❌ Incorreta
Esta alternativa é idêntica à B e contém o mesmo erro: o plano "Top Special Plus" da operadora Abc não começa com "Special", violando o filtro LIKE 'Special%'. A ordenação também está incorreta (Lotus, Camel, Abc), pois o ORDER BY Operadora exige ordem alfabética crescente.
Alternativa D — ❌ Incorreta
O erro aqui é duplo. Primeiro, os planos "Plano Special 1" e "Plano Special X" não começam com "Special" — começam com "Plano", portanto não atendem ao LIKE 'Special%'. Segundo, a ordenação está incorreta: Lotus, Camel, Abc não segue a ordem alfabética exigida pelo ORDER BY Operadora.
Alternativa E — ❌ Incorreta
Nenhum dos planos listados começa com "Special": "1 Special", "X Special" e "Top Plus Special" são strings que terminam com "Special", mas o padrão 'Special%' exige que a string comece com "Special". O curinga % no final do padrão permite qualquer coisa depois de "Special", mas não antes. Portanto, nenhuma linha atende ao filtro.
NÃO CAIA NESSA!
A banca explora a confusão entre o curinga % e a posição da string literal no padrão. Em 'Special%', a palavra "Special" deve estar no início do valor; o % só casa com o que vem depois. Alternativas como a E mostram planos que contêm "Special" em outra posição ("1 Special", "X Special") — o candidato desatento pode achar que basta a palavra aparecer em algum lugar. Lembre-se: sem curinga antes de "Special", o valor precisa começar exatamente com essa string.
PEGA ESSA DICA!
Para resolver questões de LIKE rapidamente, aplique dois testes mentais: (1) o valor começa com a parte literal do padrão? (2) a parte variável (representada por % ou _) casa com o restante? Se a resposta for sim para ambos, a linha é retornada. E não se esqueça do ORDER BY: confira sempre se a ordenação está correta, pois a banca adora incluir linhas válidas fora de ordem para derrubar o candidato.