PostgreSQL admite el NUMERIC
tipo para almacenar números con una gran cantidad de dígitos. Generalmente NUMERIC
los tipos se utilizan para el almacenamiento monetario o de cantidades donde se requiere precisión.
Syntax: NUMERIC(precision, scale) Where, Precision: Total number of digits. Scale: Number of digits in terms of a fraction.
El NUMERIC
valor puede tener hasta 131.072 dígitos antes del punto decimal de 16.383 dígitos después del punto decimal.
Se permite tener escala cero o positiva, según la sintaxis definida a continuación para una columna NUMÉRICA con escala cero:
Syntax: NUMERIC(precision)
Si elimina tanto la precisión como la escala, no hay límite para la precisión o la escala y la sintaxis será la siguiente:
Syntax: NUMERIC
Los tipos NUMERIC y DECIMAL son equivalentes en PostgreSQL y hasta el estándar SQL.
Se recomienda no utilizar el tipo NUMERIC si no se requiere precisión, ya que el cálculo de los valores NUMERIC es más lento que los números enteros, flotantes y de precisión doble.
Ejemplo 1:
Cree una nueva tabla llamada productos con los siguientes comandos:
CREATE TABLE IF NOT EXISTS products ( id serial PRIMARY KEY, name VARCHAR NOT NULL, price NUMERIC (5, 2) );
Ahora inserte algunos productos con precios cuyas escalas superen la escala declarada en la columna de precios:
INSERT INTO products (name, price) VALUES ('Phone', 100.2157), ('Tablet', 300.2149);
Como la escala de la columna de precios es 2, PostgreSQL redondea el valor 100,2157 hasta 100,22 y redondea el valor 300,2149 hasta 300,21.
La siguiente consulta devuelve todas las filas de la tabla de productos:
SELECT * FROM products;
Producción:
Ejemplo 2:
Cree una nueva tabla llamada productos con los siguientes comandos:
CREATE TABLE IF NOT EXISTS employee_salary( id serial PRIMARY KEY, name VARCHAR NOT NULL, salary NUMERIC (10, 2) );
Ahora inserte algunos productos con precios cuyas escalas superen la escala declarada en la columna de precios:
INSERT INTO employee_salary(name, salary) VALUES ('Raju', 57896.2277), ('Abhishek', 84561.3657), ('Nikhil', 55100.11957), ('Ravi', 49300.21425849);
Como la escala de la columna de precios es 2, PostgreSQL redondea el valor 57896,2277 hasta 57896,22 para Raju, el valor 84561,3657 hasta 84561,36 para Abhishek, el valor 55100,11957 hasta 55100,12 para Nikhil y el valor 49300,21425849 hasta 21 para Ravi.
La siguiente consulta devuelve todas las filas de la tabla de productos:
SELECT * FROM employee_salary;
Producción:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA