Questão de Banco de Dados — Consultas e Comandos em SQL — FCC 2026
- Código
- fc142132
- Banca
- FCC
- Órgão
- ATI
- Ano
- 2026
- Cargo
- AGTIC ( )
- ALIKE 'ana'
- BCONTAINS 'ana'
- CLIKE 'ana %'
- DCONTAINS '*ana*'
- ELIKE '%ana%'
GabaritoE — LIKE '%ana%'
Gabarito: letra E. Para retornar sobrenomes que contenham a sequência "ana" em qualquer posição, a cláusula correta é WHERE sobrenome LIKE '%ana%', pois o operador LIKE é o padrão ANSI para busca de padrões em strings, e os curingas % (qualquer sequência de caracteres) antes e depois de "ana" garantem que a correspondência ocorra em qualquer posição do valor.
O operador LIKE é a ferramenta do SQL para comparar uma coluna com um padrão textual. Ele é usado na cláusula WHERE e combina com dois curingas principais: o %, que representa qualquer sequência de caracteres (inclusive vazia), e o _, que representa exatamente um caractere qualquer. A posição desses curingas em relação ao texto literal define onde a correspondência deve ocorrer.
Para entender a lógica, imagine a tabela de funcionários com os sobrenomes: "Anastacia", "Mariana", "Joanaci", "Silva" e "Santos". A consulta WHERE sobrenome LIKE '%ana%' retornaria "Anastacia" (ana no início), "Mariana" (ana no meio) e "Joanaci" (ana no meio), pois o % antes de "ana" permite qualquer prefixo e o % depois permite qualquer sufixo. Já "Silva" e "Santos" não seriam retornados, pois não contêm a sequência "ana".
A pegadinha clássica desta questão é confundir o operador LIKE com CONTAINS, que não existe no padrão SQL ANSI (é específico de alguns SGBDs como SQL Server, mas não é padrão), e errar a posição dos curingas. O % é o curinga de múltiplos caracteres; o _ é o de um único caractere. Colocar % apenas no final ('ana%') buscaria apenas valores que começam com "ana", e sem curingas ('ana') buscaria apenas o valor exato "ana".
Guarde a regra de ouro: para buscar uma substring em qualquer posição, o padrão deve ser '%texto%'. É exatamente essa combinação de curingas que separa a alternativa correta das demais.
LIKE 'ana' busca apenas o valor exatamente igual a "ana", sem curingas. Não atende ao requisito de encontrar a sequência em qualquer posição, pois "Mariana" e "Joanaci" não seriam retornados.
CONTAINS não é um operador do padrão SQL ANSI. Ele existe em alguns SGBDs específicos (como SQL Server) para busca de texto completo, mas não é a sintaxe padrão para busca de padrões em strings.
LIKE 'ana %' busca valores que começam com "ana" seguido de um espaço e qualquer coisa depois. Isso não atende ao requisito, pois a sequência "ana" deve aparecer em qualquer posição, não apenas no início, e o espaço após "ana" é um caractere literal que não existe em todos os casos.
CONTAINS '*ana*' usa um operador inexistente no padrão SQL ANSI e um curinga * que não é reconhecido pelo SQL (o curinga correto é %). Além disso, CONTAINS não é a sintaxe padrão para busca de padrões.
LIKE '%ana%' é a sintaxe correta. O % antes de "ana" permite qualquer sequência de caracteres antes, e o % depois permite qualquer sequência depois, garantindo que a busca encontre "ana" em qualquer posição do sobrenome. Isso atende exatamente ao requisito do enunciado.
Para fixar, lembre-se da posição dos curingas: 'ana%' = começa com "ana"; '%ana' = termina com "ana"; '%ana%' = contém "ana" em qualquer posição. O _ substitui exatamente um caractere. Essa é a base para resolver qualquer questão de busca de padrões com LIKE.
Gabarito: letra E
Link permanente: /questoes/fc142132