Gostaria de entender por que os preços não deram certo, a função random() gera um valor entre 0 e 1, não estou entendo como é possivel random()*80 gerar um valor tão grande (quando deveria gerar 0 a 80) e também alguns valores negativos.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Gostaria de entender por que os preços não deram certo, a função random() gera um valor entre 0 e 1, não estou entendo como é possivel random()*80 gerar um valor tão grande (quando deveria gerar 0 a 80) e também alguns valores negativos.
cheguei nos valores dentro do intervalo mas não com as casas decimais
Oii, Guilherme! Como você está?
A função RANDOM() no SQLite não gera um valor entre 0 e 1. Ele gera um valor inteiro aleatório entre -9223372036854775808 e +9223372036854775807. Então, ao usar RANDOM() * 80, o retorno com valores serão grandes ou negativos. Leia mais no link abaixo:
A página abrirá em inglês, para fazer a leitura em português, clique com o botão direito do mouse em qualquer canto da página e escolha a opção traduzir para o português.
E na segunda imagem, você está no caminho certo, é isso mesmo! Sobre não estar retornando um valor decimal, é possível que a tabela não esteja no tipo decimal. Então, recomendo que altere o tipo para um que aceite valores decimais com o comando:
ALTER TABLE produtos
MODIFY COLUMN preco DECIMAL(10, 2);
Espero ter ajudado. Conte sempre conosco aqui no fórum.
Bons estudos e até mais!