1
resposta

[Projeto] Como eu fiz o ajuste dos valores nas bases dos produtos

Olá,

Para esse desafio escolhi atualizar os preços utilizando a função random para gerar novos preços aleatórios dentro do intervalo aceitável. Como a função gera apenas números inteiros, para gerar valores decimais recorri a uma sugestão que localizei na internet que divide o número inteiro gerado por 9223372036854775808.0 que seria o valor máximo de um inteiro de 64 bits, também usei a função round para deixar com apenas 2 casas decimais.

Fiz o update dentro de uma transação (conhecimento do curso anterior a esse na carreira de Análise de Dados), assim consegui verificar se as alterações foram realizadas conforme o esperado gerando uma tabela com os valores mínimos e máximos por produto antes de aplicar ao banco de dados com o commit.

BEGIN TRANSACTION;

UPDATE produtos
set preco = ROUND((ABS(RANDOM()) / 9223372036854775808.0) * (100 - 20) + 20, 2)
where nome_produto = 'Bola de Futebol' and preco not BETWEEN 20 and 100;

UPDATE produtos
set preco = ROUND((ABS(RANDOM()) / 9223372036854775808.0) * (50 - 10) + 10, 2)
where nome_produto = 'Chocolate' and preco not BETWEEN 10 and 50;

UPDATE produtos
set preco = ROUND((ABS(RANDOM()) / 9223372036854775808.0) * (5000 - 80) + 80, 2)
where nome_produto = 'Celular' and preco not BETWEEN 80 and 5000;

UPDATE produtos
set preco = ROUND((ABS(RANDOM()) / 9223372036854775808.0) * (200 - 10) + 10, 2)
where nome_produto = 'Livro de Ficção' and preco not BETWEEN 10 and 200;

UPDATE produtos
set preco = ROUND((ABS(RANDOM()) / 9223372036854775808.0) * (200 - 80) + 80, 2)
where nome_produto = 'Camisa' and preco not BETWEEN 80 and 200;

SELECT nome_produto, MIN(preco), MAX(preco)
from produtos
GROUP by nome_produto;

COMMIT;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Estudante! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso da função RANDOM para gerar valores aleatórios com SQL, utilizou muito bem o ROUND para controlar a precisão dos preços e ainda compreendeu a importância da transação com COMMIT para garantir consistência e segurança nas alterações do banco de dados.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!