Questão de Banco de Dados — Banco de Dados Relacionais — VUNESP 2023
Banco de Dados›Banco de Dados Relacionais
Código
vu080379
Banca
VUNESP
Órgão
UFABC
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Considere a seguinte tabela de um banco de dados relacional:Paciente (ID, Nome, Idade, Convenio, Valor)O comando SQL para majorar em 12% o valor para os convênios denominados Único e Final é:
AOUTPUT Valor = Valor ∗ 1.12FROM Convenio = ‘Único’ AND Convenio =‘Final’ FOR Paciente;
BSELECT Valor = Valor ∗ 1.12HAVING Convenio = ‘Único’ AND Convenio =‘Final’ IN Paciente;
CWRITE Convenio.Valor = Convenio.Valor ∗ 1.12FROM Paciente.Convenio IN (‘Único’ OR ‘Final’);
EUPDATE PacienteSET Valor = Valor ∗ 1.12WHERE Convenio IN (‘Único’,’Final’);
Revelar gabarito e comentário▾
GabaritoE — UPDATE Paciente
SET Valor = Valor ∗ 1.12
WHERE Convenio IN (‘Único’,’Final’);
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”.
Comando SQL de Atualização (UPDATE)
Gabarito: letra E. Para aumentar valores de colunas específicas, o comando correto é UPDATE com SET e cláusula WHERE. A banca testa o conhecimento da sintaxe do comando UPDATE e o uso correto do operador IN para filtrar múltiplos valores.
NÃO CAIA NESSA!
A banca utiliza condições impossíveis como Convenio = 'Único' AND Convenio = 'Final'. Um único registro não pode ter dois valores diferentes para a mesma coluna ao mesmo tempo. O correto é usar IN('Único','Final') ou Convenio = 'Único' OR Convenio = 'Final'.
Alternativa A — ❌ Incorreta
OUTPUT não é um comando SQL válido para atualização. A sintaxe está completamente errada; não há cláusula OUTPUT que realize alterações.
Alternativa B — ❌ Incorreta
SELECT é usado para consultas, não para atualização de dados. HAVING é aplicado a resultados de funções agregadas, não a condições simples de coluna. Além disso, a condição Convenio = 'Único' AND Convenio = 'Final' é impossível.
Alternativa C — ❌ Incorreta
WRITE não é um comando SQL reconhecido. A sintaxe Convenio IN ('Único' OR 'Final') está incorreta: dentro de IN, os valores devem ser separados por vírgula, não por OR.
Alternativa D — ❌ Incorreta
A sintaxe UPDATE Paciente.Valor = ... FROM Convenio = ... está incorreta. A cláusula FROM não é usada dessa forma em um UPDATE simples. Além disso, a condição AND impossível.
Alternativa E — ✅ Correta ⟵ GABARITO
O comando UPDATE Paciente SET Valor = Valor * 1.12 WHERE Convenio IN ('Único','Final') segue exatamente a sintaxe padrão SQL: UPDATE tabela SET coluna = expressão WHERE condição. O operador IN permite filtrar registros cujo valor da coluna Convenio seja igual a qualquer um dos elementos da lista.