type tipos example decimales datos data create postgresql rdbms sqldatatypes

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>.


Desde el manual:

Los tipos decimal y numeric 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/