Questão de Banco de Dados — SQL — FCC 2017
- Código
- fc037991
- Banca
- FCC
- Órgão
- TRE-PR
- Ano
- 2017
- Nível
- Médio
- Cargo
- Técnico Judiciário - Programação de Sistemas
- ACONTAINS(1, '2');
- BLIKE ' *2%';
- CCONTAINS LEFT(2, '2');
- DLIKE '_2%';
- ECONTAINS '_2%'
GabaritoD — LIKE '_2%';
Gabarito: letra D. Em SQL, para selecionar registros cujo segundo caractere de um campo seja exatamente '2', usa-se o operador LIKE com o padrão '_2%': o underscore (_) representa um único caractere qualquer na primeira posição, o '2' é o segundo caractere, e o % corresponde a qualquer sequência de zero ou mais caracteres após. O operador LIKE é o único entre as alternativas que realiza casamento de padrão com curingas.
O operador CONTAINS (alternativas A, C, E) é utilizado para busca de texto completo (full-text) e não aceita a sintaxe com curingas como _ e %. Além disso, CONTAINS(1, '2') e CONTAINS LEFT(2, '2') não são comandos SQL válidos para essa finalidade.
CONTAINS(1, '2') não é uma função SQL padrão para buscar padrão em string. A sintaxe correta para casamento de padrão é LIKE, não CONTAINS.
LIKE ' *2%' usa um asterisco (*) que não é curinga no SQL. O curinga para um caractere é _; o % representa zero ou mais caracteres, mas o asterisco não tem significado no LIKE.
CONTAINS LEFT(2, '2') mistura duas funções de forma inválida. LEFT é uma função de string que extrai caracteres da esquerda, mas não faz parte do operador CONTAINS. Além disso, CONTAINS não é adequado para esse tipo de busca.
LIKE '_2%' é a expressão correta: o primeiro underscore _ casa com qualquer caractere (posição 1), o '2' é o segundo caractere, e o % casa com qualquer sequência restante (posições 3 em diante). Satisfaz exatamente a condição pedida.
CONTAINS '_2%' embora pareça usar curingas, o operador CONTAINS não interpreta _ e % como curingas. Eles seriam tratados como literais (procuraria por underscore e porcento no texto), além de não ser a função apropriada.
A banca tenta confundir o candidato oferecendo variações do operador CONTAINS (que não é o correto) e um padrão com asterisco (*2%) que não é curinga do SQL. O aluno deve lembrar que o curinga para exatamente um caractere é o underscore (_), e para qualquer quantidade é o %, ambos usados exclusivamente com o operador LIKE.
Gabarito: letra D — a única que emprega corretamente o operador LIKE com o padrão '_2%'.
Link permanente: /questoes/fc037991