卫生防疫手抄报PostgreSQLNUMERIC数据类型
NUMERIC 类型能存储⼤数据量的数值。通常NUMERIC类型⽤于需要精确性的数字,如货币数量或度量。本⽂介绍 NUMERIC ,并通过⽰例学习它的特性。
介绍 NUMERIC
NUMERIC类型的语法:
NUMERIC(precision, scale)
precision 表⽰整个数据长度,scale 表⽰⼩数部分的长度。如: 1234.567 ,precision 为 7 ,scale 为 3.
NUMERIC 类型 在⼩数点前⾯长度可达到 131,072 ,⼩数点后⾯长度可达到 16,383。scale 可以为0 或正数,下⾯⽰例表⽰ scale 为0:
NUMERIC(precision)
如果 precision 和 scale 都忽略,则可以存储 任何上⾯提及限制内的长度和精度。
锦绣前程是什么意思NUMERIC
在 PostgreSQL中 NUMERIC 和 DECIMAL 是等价的,两者都是SQL标准的⼀部分。如果精度不是必须的,则不应选择 NUMBER,因为计算 NUMBER 要 ⽐ integer ,float ,double 慢。
⽰例
下⾯看⼀些⽰例。
激情丁香网1. 存储数值
如果您存储的值的精度⼤于NUMERIC列声明时置顶的精度,PostgreSQL将把该值四舍五⼊到指定的⼩数位数。我们看⽰例:
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(100)NOT NULL,
price NUMERIC(5,2)
);
然后插⼊⽰例记录:
INSERT INTO products (name, price)
VALUES('Phone',500.215),
('Tablet',500.214);
我们声明时 price 的scale 为 2, 但给的值⼩数部分为 3 ,因此会四舍五⼊:
SELECT*FROM products;
开学了图片大全返回结果:
杭州旅游攻略id name price
1Phone500.22
2Tablet500.21如果给的值超过声明时的precision 长度,POSTGRESQL会报错:
INSERT INTO products (name, price)
七彩梦
VALUES('Phone',123456.21);
SQL 错误 [22003]: 错误: 数字字段溢出
详细:精度为5,范围是2的字段必须四舍五⼊到⼩于10^3的绝对值.
2. 数值类型与NaN
除了存储数值外,还可以存储特殊的值 NaN,它表⽰不是数值。请看⽰例:
UPDATE products
SET price ='NaN'
WHERE id =1;
注意,NaN的值在update 中必须使⽤ 单引号包裹。展⽰结果:
SELECT*FROM products;
宽带升级
返回结果:
id name price
2Tablet500.21
1Phone NaN
学生头图片
注意 NaN 不等于任何数值,包括它⾃⾝,也就是说,表达式 NaN = NaN 为 fasle。然⽽,当排序时两个NaN值相等,NaN⽐其他数⼤。PostgreSQL在基于树的索引中使⽤它们进⾏排序。
SELECT*FROM products
ORDER BY price DESC;
id name price
1Phone NaN
2Tablet500.21我们看到,NaN ⽐ 500.21 ⼤。