Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2024

Banco de DadosConsultas e Comandos em SQL
Código
qa630786
Banca
FUNDATEC
Órgão
CM Viamão
Ano
2024
Cargo
Tec ( )
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".   SELECT * FROM SISTEMA WHERE NOME LIKEImagem 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 no SQL

Gabarito: letra B. Para retornar todas as linhas da tabela SISTEMA cujo campo NOME termine com a palavra "administrativo", o curinga % deve ser colocado antes do padrão, resultando em '%administrativo'. O operador LIKE é usado com os curingas % (qualquer sequência de caracteres, inclusive vazia) e _ (um único caractere), conforme o padrão SQL.

O operador LIKE é um dos recursos mais cobrados em provas de SQL para busca de padrões em strings. Ele permite comparar uma coluna com um padrão que pode conter curingas, tornando a consulta flexível para encontrar dados que correspondam parcialmente a um texto. Os dois curingas fundamentais são:

  • % — substitui zero ou mais caracteres (qualquer sequência, inclusive vazia).

  • _ — substitui exatamente um caractere.

A posição do curinga define o que se busca:

Padrão

Significado

'administrativo%'

Começa com "administrativo"

'%administrativo'

Termina com "administrativo"

'%administrativo%'

Contém "administrativo" em qualquer posição

'_administrativo'

Tem um caractere antes de "administrativo"

'administrativo_'

Tem um caractere depois de "administrativo"

No comando SELECT * FROM SISTEMA WHERE NOME LIKE ..., o objetivo é que o campo NOME termine com a palavra "administrativo". Isso significa que pode haver qualquer quantidade de caracteres antes de "administrativo", mas nada depois. Portanto, o curinga % deve vir antes do texto, e o texto deve ser o último elemento do padrão: '%administrativo'.

PEGA ESSA DICA!

Para fixar, lembre-se: o curinga % "corre" para o lado onde há liberdade. Se a palavra deve terminar com algo, o % fica antes (à esquerda). Se deve começar, o % fica depois (à direita). Se deve conter, o % fica dos dois lados. Essa lógica resolve a maioria das questões de LIKE.

Alternativa A — ❌ Incorreta

'administrativo\$f' — Este padrão não utiliza os curingas corretos do SQL. O \$f não é um curinga reconhecido pelo LIKE; parece uma tentativa de usar expressão regular ou escape, mas não corresponde à sintaxe do operador. Além disso, o padrão não termina com "administrativo" — ele começa com a palavra, o que buscaria nomes que começam com "administrativo", não que terminam.

Alternativa B — ✅ Correta ⟵ GABARITO

'%administrativo' — O curinga % antes de "administrativo" permite qualquer sequência de caracteres antes da palavra, e como não há nada depois, o campo NOME deve terminar exatamente com "administrativo". É exatamente o que o enunciado pede.

Alternativa C — ❌ Incorreta

'administrativo*' — O asterisco * não é curinga do operador LIKE no SQL padrão. Ele é usado em outras linguagens (como expressões regulares ou globs de shell), mas no SQL o curinga para múltiplos caracteres é o %. Além disso, o padrão começa com "administrativo", o que buscaria nomes que começam com a palavra, não que terminam.

Alternativa D — ❌ Incorreta

'END{administrativo}' — Esta sintaxe não é válida no SQL. As chaves {} e a palavra END não fazem parte da sintaxe do LIKE. Parece uma mistura de conceitos de outras linguagens (como regex ou blocos de código), mas não corresponde a nenhum padrão reconhecido pelo operador.

Alternativa E — ❌ Incorreta

'_administrativo_' — O curinga _ substitui exatamente um caractere. Este padrão exige que haja um caractere antes de "administrativo" e um caractere depois. Isso não atende ao requisito de "terminar com a palavra", pois exige um caractere após "administrativo". Além disso, limita a um único caractere antes, enquanto o enunciado não impõe essa restrição.

Gabarito: letra B

Link permanente: /questoes/qa630786