Importante

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!

1
resposta

[Dúvida] Mão na massa: registro de novos funcionários - Dúvida

Segue minha resolução. Os comandos rodaram certinho, mas não entendi porque o valor do salário não apareceu com 2 casas decimais como tipificado na criação da tabela.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Neusa, como vai?

Essa é uma dúvida excelente sobre o comportamento interno do SQLite e vale muito a pena entender como a ferramenta trata esses dados. Quando definimos a coluna como DECIMAL(10,2), o banco de dados entende a intenção de estrutura, mas o SQLite possui um sistema de tipos dinâmico bastante flexível chamado manifest typing. Isso significa que ele prioriza o valor real armazenado e costuma simplificar a exibição visual de números terminados em zero no resultado da consulta, ocultando as casas decimais desnecessárias por padrão sem perder a precisão do dado.

Você pode notar esse comportamento na prática caso altere o valor do salário para 6000.01 na inserção, pois como os dígitos após o ponto não são zerados, eles aparecerão normalmente na visualização do resultado.

Além disso, a chave primária ID foi definida como tipo inteiro na instrução inicial, mas o valor inserido "32D" é um texto. O SQLite aceita essa inserção devido a essa mesma flexibilidade, ajustando o tipo do dado dinamicamente, enquanto em outros bancos relacionais tradicionais isso geraria um erro imediato. Caso você precise garantir que a exibição do salário venha sempre no formato com duas casas decimais diretamente na saída da consulta, é possível utilizar funções de formatação do próprio SQLite, como o PRINTF.

O que acontece com a exibição do resultado se você tentar consultar esse valor utilizando a função PRINTF('%.2f', Salario) no seu comando SELECT?

Bons estudos e lembre-se que o fórum continua totalmente à disposição caso surja qualquer outra dúvida.

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