Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2024

Banco de DadosSQL
Código
qg162793
Banca
FUNDATEC
Órgão
Câmara de Viamão - RS
Ano
2024
Nível
Médio
Cargo
Técnico em Informática Legislativo
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".Imagem associada para resolução da questão
  1. A'administrativo\$f'
  2. B'%administrativo'
  3. C'administrativo*'
  4. D'END{administrativo}'
  5. 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.

1Curingas
% (zero ou mais caracteres)
_ (exatamente um caractere)
2Padrões
'A%' → começa com A
'%A' → termina com A
'%A%' → contém A
'_A%' → 2º caractere é A
3Não são curingas
* (literal)
$ (literal)
LIKE (busca parcial)
LEVELsoulevel.com.br
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.

Gabarito: letra B

Link permanente: /questoes/qg162793