example - tipos de datos postgresql 10
Diferencia entre el tipo de datos DECIMAL y NUMERIC en PSQL (3)
Citado directamente de https://www.postgresql.org/message-id/[email protected]
No hay ninguna diferencia, en Postgres. Hay dos nombres de tipo porque el estándar SQL requiere que aceptemos ambos nombres. En una mirada rápida en el estándar, parece que la única diferencia es esta:
17)NUMERIC specifies the data type exact numeric, with the decimal precision and scale specified by the <precision> and <scale>. 18)DECIMAL specifies the data type exact numeric, with the decimal scale specified by the <scale> and the implementation-defined decimal precision equal to or greater than the value of the specified <precision>.
es decir, para DECIMAL, la implementación puede permitir más dígitos de los que se solicitan a la izquierda del punto decimal. Postgres no ejerce esa libertad, así que no hay diferencia entre estos tipos para nosotros.
regards, tom lane
¿Cuál es el uso del tipo de datos decimal
y numeric
en postgreSQL? Según la referencia, la siguiente es la explicación dada a estos tipos de datos.
Decimal,numeric --> It is a user specified precision, exact and range up to 131072 digits before the decimal point and up to 16383 digits after the decimal point.
La declaración anterior muestra la descripción del tipo de datos decimal
y numeric
. Pero, todavía no entendía cuál es el uso exacto de estos tipos de datos y dónde se utilizan en lugar de otros tipos de datos.
Responder con el ejemplo es muy apreciado ...
Son sinónimos entre sí y funcionalmente iguales. El estándar SQL:2003 dice:
21) NUMERIC specifies the data type
exact numeric, with the decimal
precision and scale specified by the
<precision> and <scale>.
22) DECIMAL specifies the data type
exact numeric, with the decimal scale
specified by the <scale> and the
implementation-defined decimal
precision equal to or greater than the
value of the specified <precision>.
Los tipos
decimal
ynumeric
son equivalentes. Ambos tipos son parte del estándar SQL.
En cuanto al "por qué necesito usarlo", esto también se explica en el manual:
El tipo numérico puede almacenar números con un número muy grande de dígitos y realizar cálculos con exactitud
(Énfasis mío).
Si necesita números con decimales, use decimal
(o numeric
) si necesita números sin decimales, use integer
o bigint
. Un uso típico de decimal
como tipo de columna sería una columna de "precio del producto" o una "tasa de interés". Un uso típico de un tipo de entero sería, por ejemplo, una columna que almacena cuántos productos se ordenaron (asumiendo que no puede pedir "la mitad" de un producto).
double
y real
también son tipos que pueden almacenar valores decimales, pero son tipos aproximados . Esto significa que no necesariamente recuperas el valor que guardaste. Para más detalles, consulte: http://floating-point-gui.de/