Questão nº 61
Questão de Informática Básica · FGV SEFAZ-BA 2022 (nº 61)
FGV2022Administração TributáriaInformática Básica
Gabarito: Dver comentário ↓
Considere a seguinte tabela em um banco de dados relacional.

Assinale a opção que indica o comando SQL utilizado para localizar todos os nomes completos dos employees, cujos primeiros nomes começam com as letras Ma.
- A`SELECT`
`first_name;`
`last_name;`
`FROM`
`employees;` - B`SELECT *`
`FROM`
`employees`
`WHERE`
`first_name = 'Ma';` - C`SELECT `
`FROM`
`employees`
`WHERE`
`first_name = 'Ma';` - D`SELECT`
`employee_id,`
`first_name,`
`last_name`
`FROM`
`employees`
`WHERE`
`first_name LIKE 'Ma%';` (alternativa correta) - E`SELECT`
`employee_id,`
`first_name,`
`last_name`
`FROM`
`employees`
`WHERE`
`first_name IN 'Ma_';`
Resposta comentada
Gabarito Alternativa D
Para encontrar dados que seguem um padrão, mas não são exatamente iguais, usamos o operador LIKE em SQL. Ele funciona com caracteres especiais chamados wildcards: o % (percentual) representa zero ou mais caracteres, e o _ (underscore) representa um único caractere.
- (A) Incorreta: A sintaxe está errada; as colunas no
SELECTdevem ser separadas por vírgula, não por ponto e vírgula, e a cláusulaWHEREestá faltando para filtrar os resultados. - (B) Incorreta: O operador
=busca uma correspondência exata.first_name = 'Ma'só retornaria nomes que são exatamente "Ma", e não nomes que começam com "Ma" (como "Maria" ou "Manuel"). - (C) Incorreta: O caractere
*não é um wildcard válido para o operadorLIKEem SQL padrão. Em SQL, o wildcard para "zero ou mais caracteres" é o%. A armadilha aqui é que*é um wildcard comum em sistemas de arquivos ou outras linguagens de programação, mas não em SQL comLIKE. - (D) Correta: Esta é a resposta certa. O operador
LIKEcom o wildcard%(que significa "zero ou mais caracteres") após 'Ma' ('Ma%') encontra todos os nomes que começam com "Ma", como "Maria" ou "Manuel". As colunas selecionadas (employee_id,first_name,last_name) estão corretas para a pergunta que pede "nomes completos". - (E) Incorreta: O operador
INé usado para verificar se um valor está em uma lista de valores exatos, e não para padrões. Além disso, o wildcard_(underscore) representa apenas um único caractere, não múltiplos, e não é usado comINpara padrões.
Fonte: FGV SEFAZ-BA 2022 Administração Tributária (Caderno Tipo 1). Reproduzida para fins de estudo.