Questão nº 52
Questão de Tecnologia da Informação · FCC TJ-MA 2019 (nº 52)
Considere a existência de um banco de dados aberto e em condições ideais, no qual a tabela Processo possui diversos campos, sendo um deles, o campo `numero_processo`, do tipo cadeia de caracteres (`varchar`). Para exibir todos os processos cujo número inicie por qualquer caractere seguido de "009.51.01.87348-6", utiliza-se a instrução SQL:
- A`SELECT . FROM Processo WHERE numero_processo LIKE '_009.51.01.87348-6';`
- B`SELECT * FROM Processo WHERE numero_processo='#009.51.01.87348-6';`
- C`SELECT * FROM Processo WHERE numero_processo EQUALS '%009.51.01.87348-6';`
- D`SELECT * FROM Processo WHERE numero_processo LIKE '_009.51.01.87348-6';` (alternativa correta)
- E`SELECT . FROM Processo WHERE numero_processo LIKE '%009.51.01.87348-6';`
Resposta comentada
Gabarito Alternativa D
O operador LIKE no SQL é usado para encontrar padrões de texto em colunas, utilizando caracteres curinga: o _ (underline) representa exatamente um caractere, e o % (percentual) representa zero ou mais caracteres.
- (A) Incorreta: A sintaxe
SELECT *.*está errada; o correto seriaSELECT *. - (B) Incorreta: O operador
=faz uma comparação exata, não de padrão, e o caractere#não é um curinga padrão do SQL paraLIKE. - (C) Incorreta:
EQUALSnão é um operador SQL padrão; o correto para comparação exata seria=. Além disso,%no início significa "zero ou mais caracteres", o que não atende à condição de "iniciar por qualquer caractere" (singular). - (D) Correta: A sintaxe
SELECT *está correta. O padrão_009.51.01.87348-6usa o_(underline) para representar exatamente um caractere inicial, seguido da string literal, atendendo perfeitamente à condição "inicie por qualquer caractere seguido de...". - (E) Incorreta: A sintaxe
SELECT *.*está errada. A armadilha aqui é o uso do%no padrão'%009.51.01.87348-6'. Embora o%seja um curinga, ele representa zero ou mais caracteres. A questão pede "inicie por qualquer caractere", o que implica exatamente um caractere inicial, para o qual o_(underline) é o curinga correto. Usar%permitiria que a string começasse diretamente com "009.51.01.87348-6" (zero caracteres antes), o que não se encaixa na descrição "inicie por qualquer caractere".
Fonte: FCC TJ-MA 2019 Técnico Judiciário - Técnico em Informática - Software (Caderno Tipo 1). Reproduzida para fins de estudo.