Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2021
- Código
- ce130411
- Banca
- CESPE / CEBRASPE
- Órgão
- TCE-RJ
- Ano
- 2021
- Nível
- Superior
- Cargo
- Analista de Controle Externo - Especialidade: Tecnologia da Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ❌ ERRADO. O comando apresentado possui múltiplos erros: a) a sintaxe NOME.* é inválida (deveria ser apenas *); b) a cláusula WHERE usa = em vez do operador LIKE, que é necessário para comparação com padrões curinga; c) o padrão '%a%' busca qualquer nome que contenha 'a' em qualquer posição, e não apenas os que começam com 'a'. Para selecionar nomes que iniciam com 'a', o correto seria: SELECT * FROM PESSOAS WHERE NOME LIKE 'a%'.
A banca testa o conhecimento sobre o operador LIKE e os curingas % e _.
Lei (padrão SQL ANSI):
O operador
LIKEé usado para buscar um padrão em uma coluna. O curinga%representa zero ou mais caracteres, e_representa exatamente um caractere.
NOME.*: A sintaxe correta para selecionar todas as colunas é *. NOME.* seria interpretado como a coluna NOME seguida de um alias ou referência inválida – gera erro.
WHERE NOME = '%a%': O operador = faz comparação exata, não aceita curingas. Para padrões, usa-se LIKE.
Padrão '%a%': Mesmo que fosse LIKE, esse padrão encontra qualquer string que contenha 'a' em qualquer posição (começo, meio ou fim). Para nomes que começam com 'a', o correto é 'a%'.
Portanto, o comando está errado.
Gabarito: ❌ ERRADO.
Link permanente: /questoes/ce130411