FC ConcursosFC Concursos

Questão FC90583

SELECT nome FROM funcionario WHERE area = 'INTELIGENCIA' AND endereco LIKE '%BRASILIA,DF%'; Tendo como referência o código SQL precedente, julgue o item a seguir. Em LIKE '%BRASILI

Linguagem SQL

CEBRASPE (CESPE) · 2018

SELECT nome
FROM funcionario
WHERE area = 'INTELIGENCIA'
AND endereco LIKE '%BRASILIA,DF%';
 
Tendo como referência o código SQL precedente, julgue o item a seguir.
 
Em LIKE '%BRASILIA,DF%', o recurso LIKE foi definido de forma incorreta, uma vez que a utilização da vírgula (,), sem a inclusão da palavra-chave ESCAPE, impedirá que o código seja executado.
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

Comentário: A assertiva está errada, pois a vírgula (,) dentro da cláusula LIKE não causa erro de sintaxe e não exige o uso da palavra-chave ESCAPE.

Por que a assertiva está errada?
  1. A vírgula é um caractere comum:
    • No padrão SQL, a vírgula (",") não tem significado especial dentro da string.
    • No trecho:
LIKE '%BRASILIA,DF%'

O SQL interpretará "BRASILIA,DF" como uma string normal, buscando endereços que contenham exatamente esse texto.

A palavra-chave ESCAPE só é necessária para caracteres especiais do LIKE:
  • O operador LIKE usa % para múltiplos caracteres e _ para um único caractere.
  • Se quisermos buscar textos contendo % ou _ literalmente, precisaríamos do ESCAPE, como em:
LIKE '%50\% desconto%' ESCAPE '\'

    • No caso da questão, a vírgula não é um caractere especial no LIKE, então o ESCAPE não é necessário.
  1. O código SQL apresentado é válido:
    • O LIKE '%BRASILIA,DF%' funciona corretamente, sem precisar do ESCAPE.

Assertiva corrigida:

"O recurso LIKE foi definido corretamente, pois a vírgula (,) não é um caractere especial na cláusula LIKE, e o uso da palavra-chave ESCAPE não é necessário para a consulta ser executada."

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo