Тип данных DECIMAL (десятичный) похож на NUMERIC . В нем может быть дробная часть, и для него можно указать точность и масштаб. DECIMAL отличается от NUMERIC тем, что если точность имеющейся реализации SQL будет больше указанного значения, то в реализации будет использоваться большая точность. А если точность или масштаб не указаны, то, как и при использовании типа NUMERIC , в реализации применяются значения по умолчанию.
В столбце, тип которого NUMERIC (5,2), нельзя поместить числа, большие 999,99. Если же тип столбца DECIMAL (5,2), в него всегда можно поместить значения до 999,99. Кроме того, если точность реализации позволяет, то СУБД сможет поместить в этот столбец и значения, большие, чем 999,99.
Если в ваших данных имеются дробные части, тогда применяйте тип NUMERIC или DECIMAL , а если ваши данные всегда состоят из целых чисел, то используйте тип INTEGER или SMALLINT . Когда нужно добиться максимальной переносимости, следует использовать тип NUMERIC , потому что поле, тип которого вы определите, например, как NUMERIC (5,2), будет во всех системах иметь один и тот же диапазон значений.