Questão de Banco de Dados — PL-SQL — FCC 2021
- Código
- fc060822
- Banca
- FCC
- Órgão
- TJ-SC
- Ano
- 2021
- Cargo
- Analista de Sistemas
- Acpf LIKE '_5%';
- BSUBSRT(cpf,2,'5');
- C(cpf,2,'5');
- DSUBSTRING(cpf,1) LIKE '5';
- Ecpf HAVE '_5*';
GabaritoA — cpf LIKE '_5%';
Gabarito: letra A. Para selecionar registros onde o segundo caractere do campo cpf é igual a '5', utiliza-se o operador LIKE com o padrão '_5%'. O underscore (_) representa exatamente um caractere qualquer e o percentual (%) representa zero ou mais caracteres. Essa é a sintaxe padrão do SQL.
A banca testa o conhecimento dos caracteres curinga do LIKE e da sintaxe correta para expressões condicionais em consultas.
A expressão cpf LIKE '_5%' está correta: o underscore corresponde ao primeiro caractere (qualquer), o '5' é o segundo caractere literal, e o percentual corresponde ao restante da string. Assim, serão retornados os CPFs cujo segundo dígito seja 5.
A função SUBSRT não existe em SQL; o correto seria SUBSTR. Mesmo que fosse SUBSTR(cpf,2,1), ela extrairia o segundo caractere, mas não faria uma comparação com '5' – faltaria o operador = '5'. Além disso, a sintaxe SUBSRT(cpf,2,'5') é inválida.
(cpf,2,'5') não é uma expressão SQL válida. Não há operador ou função nesse formato.
SUBSTRING(cpf,1) extrai a string a partir do primeiro caractere (posição 1), e então LIKE '5' verifica se o primeiro caractere é '5'. Isso testa o primeiro dígito, não o segundo. Além disso, a sintaxe SUBSTRING(cpf,1) é incompleta (faltaria o comprimento) e o uso do LIKE após SUBSTRING é desnecessário.
cpf HAVE '_5*' utiliza uma cláusula HAVE inexistente no SQL. O correto é WHERE. Além disso, o padrão '_5*' usa asterisco, que não é curinga do SQL; o curinga para múltiplos caracteres é %, não *.
Gabarito: letra A.
Link permanente: /questoes/fc060822