A diretoria de vendas da empresa detectou a necessidade de um aumento de 13% no valor dos produtos que possuem um valor maior ou igual à 163.00. Para executar este procedimento foi desenvolvido um script de alteração na tabela de produto, verifique se a instrução SQL de alteração está correta. Se não estiver, indique qual seria o comando certo: UPDATE T_PRODUTO SET VL_PRODUTO = VL_PRODUTO * 1.13;
Questão
A diretoria de vendas da empresa detectou a necessidade de um aumento de 13% no valor dos produtos que possuem um valor maior ou igual à 163.00. Para executar este procedimento foi desenvolvido um script de alteração na tabela de produto, verifique se a instrução SQL de alteração está correta. Se não estiver, indique qual seria o comando certo:
UPDATE T_PRODUTO SET VL_PRODUTO = VL_PRODUTO * 1.13;
Alternativas
A) O comando SQL executado nessa questão está correto.
B) UPDATE PRODUTO SET VL_PRODUTO = VL_PRODUTO * 1.13 WHERE CDPRODUTO > 162.99;
C) UPDATE PRODUTO SET VL_PRODUTO = VL_PRODUTO * 1.13 WHERE VL_PRODUTO > 163.00;
D) UPDATE PRODUTO SET VL_PRODUTO = VL_PRODUTO * 1.13 WHERE CDPRODUTO >= 163.00;
E) UPDATE T_PRODUTO SET VL_PRODUTO = VL_PRODUTO * 1.13 WHERE VL_PRODUTO > 162.99;
Explicação
O enunciado diz que o aumento de 13% deve ser aplicado apenas aos produtos cujo valor (VL_PRODUTO) seja maior ou igual a 163,00.
O script apresentado:
está incorreto, porque não possui cláusula WHERE e, portanto, aplicaria o aumento para todos os produtos da tabela, inclusive os com valor menor que 163,00.
O comando correto precisa restringir a atualização pela coluna de valor do produto (VL_PRODUTO) e contemplar o critério “≥ 163,00”. Entre as alternativas, a que melhor representa isso é:
- E) usa a tabela correta T_PRODUTO e filtra por VL_PRODUTO > 162.99, o que é equivalente a VL_PRODUTO ≥ 163.00 (apenas escrito de outra forma).
Observação: a forma mais direta seria WHERE VL_PRODUTO >= 163.00, mas essa opção não está exatamente listada. A alternativa E atende ao mesmo critério.
Alternativa correta: (E).