Matemática Múltipla Escolha

Quando trabalhamos com Sequelize, os métodos de consulta e manipulação de dados das entidades são convertidos em comandos SQL, sendo possível a relação direta entre as duas tecnologias. Observe o comando SQL apresentado a seguir: UPDATE produtos SET quantidade = 0 WHERE quantidade IS NULL AND codigo BETWEEN 1 AND 50; Qual comando, com base no Sequelize e em uma entidade Produto, efetuaría a mesma operação do comando SQL apresentado?

Quando trabalhamos com Sequelize, os métodos de consulta e manipulação de dados das entidades são convertidos em comandos SQL, sendo possível a relação direta entre as duas tecnologias. Observe o comando SQL apresentado a seguir:

UPDATE produtos SET quantidade = 0 WHERE quantidade IS NULL AND codigo BETWEEN 1 AND 50;

Qual comando, com base no Sequelize e em uma entidade Produto, efetuaría a mesma operação do comando SQL apresentado?

  1. db.Produto.findAll({where:{quantidade:null, codigo:[1,50]}}).update({quantidade:0});
  2. db.Produto.findOne({where:{quantidade:null, codigo:[1,50]}}).update({quantidade:0});
  3. db.Produto.update({quantidade:0},{where:{codigo:[Op.gte:1, Op.lte:1, Op.gte:1]}});
  4. db.Produto.modify({quantidade:0}).since({where:{quantidade:null, codigo:[1,50]}});
  5. db.Produto.update({quantidade:0}, {where:{quantidade:{[Op.is]:null}, codigo:{[Op.between]:[1,50]}}});

Resolução completa

Explicação passo a passo

E
Alternativa E

Alternativa E

Para responder corretamente, precisamos traduzir as condições do comando SQL (UPDATE ... WHERE ...) para a sintaxe do ORM Sequelize.

Análise Detalhada

O comando SQL original é:
\text{UPDATE produtos SET quantidade = 0 WHERE quantidade IS NULL AND codigo BETWEEN 1 AND 50}

Vamos decompor os requisitos para o código Sequelize:

  1. Método de Atualização:
    Em Sequelize, a atualização de registros sem retornar as instâncias alteradas é feita pelo método Model.update(valores, opcoes).
  • Correção: Elimina alternativas que usam findAll, findOne ou métodos inexistentes como modify.
  1. Condição IS NULL:
    No SQL, IS NULL é uma verificação especial. No Sequelize, simplesmente passar quantidade: null dentro do where muitas vezes gera quantidade = NULL (o que falha em SQL), ou requer configuração específica. O operador correto e explícito é Op.is.
  • Sintaxe: { quantidade: { [Op.is]: null } }
  1. Condição BETWEEN:
    O operador BETWEEN 1 AND 50 seleciona números no intervalo fechado [1, 50]. No Sequelize, utilizamos o operador Op.between passando um array com os limites inferior e superior.
  • Sintaxe: { codigo: { [Op.between]: [1, 50] } }

Comparação das Opções

CaracterísticaComando SQLSequelize Esperado
AçãoUPDATEModel.update()
Dado NuloIS NULL{ [Op.is]: null }
IntervaloBETWEEN 1 AND 50{ [Op.between]: [1, 50] }

A última alternativa (E) é a correta porque:

  • Utiliza db.Produto.update corretamente.
  • Usa Op.is para garantir a tradução de IS NULL.
  • Usa Op.between para garantir a tradução de BETWEEN.

As outras opções falham em:

  • Usar métodos de seleção (find) em vez de atualização direta.
  • Inverter a lógica do intervalo (lte e gte mal aplicados na opção C).
  • Não utilizar os operadores especiais necessários para NULL e BETWEEN.

Portanto, a alternativa E é a que efetua a mesma operação do comando SQL apresentado.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Matemática

Ver mais Matemática resolvidas

Tem outra questão de Matemática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.