Questão nº 40
Questão de Infraestrutura e Banco de Dados · FCC MPEPE 2018 (nº 40)
Considere a consulta escrita em SQL abaixo.
```sql
SELECT Item
FROM Lista
WHERE Item LIKE "A%S";
```
O resultado da execução dessa consulta será composto por registros da tabela `Lista`, exibindo o campo `Item`, com a condição de que seus valores devem
- Ater em sua formação a sequência `A%S` e ter número de caracteres variando entre 3 e o número máximo especificado para esse campo, quando da criação da tabela `Lista`.
- Bter pelo menos duas letras `A` e duas letras `S` e ter número de caracteres variando entre 5 e o número máximo especificado para esse campo, quando da criação da tabela `Lista`.
- Cter ou uma letra `A`, ou uma letra `S` e ter número de caracteres variando entre 3 e o número máximo especificado para esse campo, quando da criação da tabela `Lista`.
- Dcomeçar com a letra `A`, terminar com a letra `S` e ter número de caracteres variando entre 2 e o número máximo especificado para esse campo, quando da criação da tabela `Lista`. (alternativa correta)
- Ecomeçar com as letras `A` ou `S` e terminar também com uma dessas duas letras, além de ter número de caracteres variando entre 5 e o número máximo especificado para esse campo, quando da criação da tabela `Lista`.
Resposta comentada
Gabarito Alternativa D
A cláusula `LIKE` no SQL é usada para buscar padrões em textos, usando caracteres especiais chamados wildcards. O wildcard `%` (sinal de porcentagem) representa zero ou mais caracteres em qualquer posição, enquanto `_` (underscore) representa exatamente um caractere.
(A) Incorreta: A sequência `A%S` não significa que a string deve conter literalmente "A%S". O `%` é um wildcard que representa qualquer coisa (ou nada) entre o 'A' inicial e o 'S' final. Além disso, uma string como "AS" (2 caracteres) também satisfaria o padrão, tornando o limite mínimo de 3 caracteres incorreto. Armadilha da banca: O erro aqui é tratar o wildcard `%` como parte literal da string a ser encontrada, e não como um operador de correspondência de padrão, e errar o número mínimo de caracteres.
(B) Incorreta: O padrão `A%S` não exige pelo menos duas letras 'A' ou 'S', nem um número mínimo de 5 caracteres. Por exemplo, "AS" ou "AXS" seriam correspondências válidas.
(C) Incorreta: O padrão `A%S` exige que a string comece com 'A' e termine com 'S', não "ou uma letra 'A', ou uma letra 'S'". O limite mínimo de 3 caracteres também está incorreto.
(D) Correta: O padrão `A%S` significa que a string deve começar com a letra 'A', ter zero ou mais caracteres no meio (representados pelo `%`), e terminar com a letra 'S'. A menor string possível que se encaixa nesse padrão é "AS" (onde o `%` corresponde a zero caracteres), o que significa que o número mínimo de caracteres é 2. O número máximo é limitado pela definição do campo `Item`.
(E) Incorreta: O padrão `A%S` especifica claramente que a string deve começar com 'A' (não 'A' ou 'S') e deve terminar com 'S' (não 'A' ou 'S'). O limite mínimo de 5 caracteres também está incorreto.
Fonte: FCC MPEPE 2018 Analista Ministerial - Área Informática (Caderno Tipo 1). Reproduzida para fins de estudo.