Bezpośrednio z instrukcji:
Typy decimal
i numeric
są równoważne. Oba typy są częścią standardu SQL.
Jeśli chodzi o „dlaczego muszę go używać”, jest to również wyjaśnione w instrukcji:
Typ numeryczny może przechowywać liczby z bardzo dużą liczbą cyfr i dokładnie wykonywać obliczenia
(podkreślenie moje).
Jeśli potrzebujesz liczb z ułamkami dziesiętnymi, użyj decimal
(lub numeric
) jeśli potrzebujesz liczb bez miejsc dziesiętnych, użyj integer
lub bigint
. Typowe użycie decimal
jako typ kolumny będzie to kolumna „cena produktu” lub „stopa procentowa”. Typowym zastosowaniem typu liczb całkowitych byłoby np. kolumna, która przechowuje ile produkty zostały zamówione (zakładając, że nie można zamówić "połowy" produktu).
double
i real
to również typy, które mogą przechowywać wartości dziesiętne, ale są przybliżone typy. Oznacza to, że niekoniecznie pobierasz zapisaną wartość. Aby uzyskać szczegółowe informacje, zobacz:http://floating-point-gui.de/