Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2024
Banco de Dados›Consultas e Comandos em SQL
Código
vu212102
Banca
VUNESP
Órgão
EsFCEx
Ano
2024
Cargo
CFO/QC ( )
Considere a seguinte tabela de um banco de dados relacional: Teclado (Tipo, Valor, Origem). O comando SQL para obter o tipo e a origem dos teclados cuja Origem se inicie com a letra C é:
SELECT Tipo, Origem FROM Teclado Comando X
O Comando X que complementa com correção o especificado no enunciado é:
AWHERE Origem SIMILAR IN (’C%’);
BWHERE Origem EQUAL (’C%’);
CWHERE Origem IN (’C%’);
DWHERE Origem LIKE (’C%’);
EWHERE Origem = (’C%’);
Revelar gabarito e comentário▾
GabaritoD — WHERE Origem LIKE (’C%’);
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
SQL: operador LIKE para correspondência de padrões
Gabarito: letra D. Para obter os teclados cuja Origem se inicia com a letra C, o comando correto é WHERE Origem LIKE ('C%'), pois o operador LIKE é o único, entre os listados, que realiza correspondência de padrões com os curingas % (qualquer sequência) e _ (um caractere) — exatamente o que a consulta pede.
O operador LIKE é a ferramenta do SQL para buscar valores que correspondam a um padrão textual. Ele é usado na cláusula WHERE e combina com dois curingas: o %, que representa qualquer sequência de caracteres (inclusive vazia), e o _, que representa exatamente um caractere. No caso da questão, o padrão 'C%' significa: a letra C no início, seguida de qualquer coisa. Assim, retornam registros como "Cherry", "Corsair", "China", mas não "Logitech" ou "Brasil".
A confusão clássica é achar que o operador = (igualdade) ou IN (pertencimento a uma lista) fazem esse trabalho. Eles não fazem: = compara valores exatos, e IN compara com uma lista de valores exatos. O curinga % só tem significado especial quando usado com LIKE (ou com SIMILAR TO, que é uma variação do padrão SQL, mas não é o caso aqui).
Art. 1Lei-14133
Art. 1º — "Esta Lei estabelece normas gerais de licitação e contratação para as Administrações Públicas diretas, autárquicas e fundacionais da União, dos Estados..."
Operadores de comparação SQL: LIKE (Correspondência de padrão, Curingas: % (sequência) e _ (1 caractere)); = (Comparação exata, Não interpreta %); IN (Lista de valores exatos, Não interpreta %); SIMILAR TO (Variação do LIKE (padrão SQL), Sintaxe "SIMILAR IN" não existe)
Alternativa A — ❌ Incorreta
A sintaxe SIMILAR IN não existe no SQL. O operador SIMILAR TO é uma variação do LIKE que usa expressões regulares, mas não é combinado com IN. A banca inventou uma sintaxe que não é válida.
Alternativa B — ❌ Incorreta
Não existe operador EQUAL no SQL para comparação de strings. O operador de igualdade é = (sinal de igual), e mesmo ele não faria a correspondência de padrão, pois compararia o valor exato da coluna com a string literal 'C%' (que contém o caractere %), não com qualquer valor que comece com C.
Alternativa C — ❌ Incorreta
O operador IN é usado para verificar se um valor está em uma lista de valores explícitos, como WHERE Origem IN ('China', 'Coreia'). Ele não interpreta o % como curinga; trataria 'C%' como uma string literal, não encontrando nenhum registro (a menos que exista uma origem literalmente chamada "C%").
Alternativa D — ✅ Correta ⟵ GABARITO
O operador LIKE é o correto para correspondência de padrões. A sintaxe WHERE Origem LIKE ('C%') filtra os registros onde a coluna Origem começa com a letra C, seguida de qualquer sequência de caracteres. O % é o curinga que representa "qualquer coisa".
Alternativa E — ❌ Incorreta
O operador = (igualdade) compara valores exatos. WHERE Origem = ('C%') buscaria registros onde a Origem é exatamente a string "C%" (com o caractere percentual), o que não atende ao requisito de "iniciar com C". O % não é interpretado como curinga com =.