Assinale a alternativa que preenche corretamente a lacuna do comando SQL abaixo, considerando que o comando deverá retornar todas as linhas da tabela SISTEMA cujo campo NOME termine com a palavra "administrativo".
A'administrativo\$f'
B'%administrativo'
C'administrativo*'
D'END{administrativo}'
E'_administrativo_
Revelar gabarito e comentário▾
GabaritoB — '%administrativo'
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 B. Para retornar todas as linhas da tabela SISTEMA cujo campo NOME termine com a palavra "administrativo", o padrão correto é '%administrativo', pois o curinga % corresponde a qualquer sequência de caracteres (inclusive vazia) e, posicionado antes da palavra, exige que ela esteja no final do valor. Essa é a sintaxe padrão do operador LIKE na linguagem SQL.
O operador LIKE é usado para comparar um valor de coluna com um padrão de texto, permitindo buscas parciais. Os dois curingas fundamentais são:
% (porcentagem): corresponde a zero ou mais caracteres (qualquer sequência, inclusive vazia).
_ (sublinhado): corresponde a exatamente um caractere.
Esses curingas podem ser combinados livremente para formar padrões. Por exemplo:
'A%' → valores que começam com "A".
'%A' → valores que terminam com "A".
'%A%' → valores que contêm "A" em qualquer posição.
'_A%' → valores cujo segundo caractere é "A".
No caso da questão, queremos que o campo NOME termine com a palavra "administrativo". Portanto, o padrão deve ser '%administrativo': o % no início permite qualquer prefixo, e a palavra fixa no final garante que ela seja o sufixo do valor.
A pegadinha clássica da banca é inverter a posição do curinga: colocar % no final ('administrativo%') faria a busca retornar valores que começam com "administrativo", não os que terminam. Outra armadilha é usar o curinga _ (um único caractere) quando se deseja uma sequência arbitrária, ou usar caracteres que não são curingas no SQL (como * ou $), que seriam interpretados literalmente.
Guarde a regra de ouro: o curinga % substitui qualquer quantidade de caracteres; o _ substitui exatamente um. A posição do curinga determina se a busca é por prefixo, sufixo ou substring. É exatamente essa lógica que separa as alternativas desta questão.
LIKE (busca parcial): Curingas (% (zero ou mais caracteres), _ (exatamente um caractere)); Padrões ('A%' → começa com A, '%A' → termina com A, '%A%' → contém A, '_A%' → 2º caractere é A); Não são curingas (* (literal), $ (literal))
Alternativa A — ❌ Incorreta
'administrativo\$f' — Este padrão contém caracteres que não são curingas no SQL ($ e f). O $ não tem significado especial no LIKE padrão (em algumas implementações, como no Oracle, pode ser usado com ESCAPE, mas não é o caso aqui). Além disso, a barra invertida \ não é um caractere de escape padrão no SQL. Este padrão buscaria literalmente a string "administrativo$f", o que não atende ao requisito.
Alternativa B — ✅ Correta ⟵ GABARITO
'%administrativo' — O curinga % no início corresponde a qualquer sequência de caracteres (inclusive vazia), e a palavra "administrativo" no final exige que o valor do campo NOME termine com essa palavra. É exatamente o que o enunciado pede.
Alternativa C — ❌ Incorreta
'administrativo*' — O asterisco *não é um curinga no operador LIKE do SQL. Ele é interpretado literalmente, ou seja, o padrão buscaria valores que começam com "administrativo*" (com o asterisco incluso). Além disso, mesmo que fosse um curinga, estaria no final, o que faria a busca retornar valores que começam com "administrativo", não os que terminam.
Alternativa D — ❌ Incorreta
'END{administrativo}' — Este padrão não utiliza os curingas % ou _. As chaves {} e a palavra "END" são interpretadas literalmente. O SQL padrão não reconhece {} como metacaracteres de padrão. Portanto, a busca retornaria apenas valores exatamente iguais a "END{administrativo}", o que não atende ao requisito.
Alternativa E — ❌ Incorreta
'_administrativo_' — O curinga _ corresponde a exatamente um caractere. Assim, este padrão buscaria valores que tenham exatamente um caractere antes de "administrativo" e um caractere depois, ou seja, valores como "XadministrativoY". Isso não garante que a palavra esteja no final, pois exige um caractere após ela. Para permitir qualquer quantidade de caracteres (inclusive nenhum) antes e depois, seria necessário usar %, não _.
NÃO CAIA NESSA!
A banca explora a confusão entre os curingas % e _. O % corresponde a qualquer sequência (inclusive vazia), enquanto o _ corresponde a um único caractere. Na alternativa E, o uso de _ antes e depois da palavra exigiria exatamente um caractere em cada posição, o que não atende ao requisito de "terminar com". Além disso, a posição do curinga é crucial: '%administrativo' (curinga no início) busca sufixo, enquanto 'administrativo%' (curinga no final) buscaria prefixo. Fique atento a essa inversão, que é uma armadilha recorrente.
PEGA ESSA DICA!
Para memorizar, pense: % é "qualquer coisa" (como um coringa que pode ser nada ou muito), _ é "uma coisa só" (um caractere exato). Na prova, leia o enunciado com atenção: se pede "começa com", o % vai no final; se pede "termina com", o % vai no início; se pede "contém", o % vai dos dois lados. E nunca use * ou $ como curinga — eles não funcionam no LIKE padrão.