Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — VUNESP 2023

Banco de DadosBanco 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 é:
  1. AOUTPUT Valor = Valor ∗ 1.12FROM Convenio = ‘Único’ AND Convenio =‘Final’ FOR Paciente;
  2. BSELECT Valor = Valor ∗ 1.12HAVING Convenio = ‘Único’ AND Convenio =‘Final’ IN Paciente;
  3. CWRITE Convenio.Valor = Convenio.Valor ∗ 1.12FROM Paciente.Convenio IN (‘Único’ OR ‘Final’);
  4. DUPDATE Paciente.Valor = Paciente.Valor ∗ 1.12FROM Convenio = ‘Único’ AND Convenio = ‘Final’;
  5. 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.

Link permanente: /questoes/vu080379