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:https://floating-point-gui.de/