Egzamin zawodowyPortal części pisemnej

INF.04 · pytanie 134

Zastosowanie typu DECIMAL języka SQL wymaga wcześniejszego zdefiniowania długości (liczby cyfr) przed przecinkiem oraz długości cyfr po przecinku. Jest to zapis:

  1. Ałańcuchowy
  2. BstałoprzecinkowyPoprawna
  3. Clogiczny
  4. Dzmiennoprzecinkowy

Wyjaśnienie

Typ DECIMAL w SQL należy do typów stałoprzecinkowych, czyli takich, w których z góry określa się precyzję zapisu liczby oraz liczbę miejsc po separatorze dziesiętnym. W praktyce zapis wygląda najczęściej tak: DECIMAL(p, s), gdzie p oznacza całkowitą liczbę cyfr, a s liczbę cyfr po przecinku. Czyli DECIMAL(10,2) pozwala przechować np. 12345678.90, bo są łącznie 10 cyfr, z czego 2 po przecinku. Moim zdaniem to jeden z ważniejszych typów w bazach danych, bo używa się go tam, gdzie nie wolno tracić dokładności: ceny produktów, kwoty faktur, stawki VAT, salda kont, wartości księgowe. Standard SQL traktuje DECIMAL i NUMERIC jako typy dokładne, w odróżnieniu od FLOAT czy REAL, które są przybliżone. Dobra praktyka branżowa jest taka, żeby do pieniędzy nie używać typów zmiennoprzecinkowych, bo mogą pojawić się dziwne zaokrąglenia, np. przy sumowaniu wielu pozycji. DECIMAL daje przewidywalny format i łatwiej kontrolować walidację danych, raporty oraz obliczenia biznesowe.