PostgreSQL - Numeric类型

PostgreSQL - Numeric类型 首页 / PostgreSQL入门教程 / PostgreSQL - Numeric类型

在本节中,无涯教程将了解 PostgreSQL数值数据类型的工作原理,该数据类型使无涯教程能够存储数值数据。而且,无涯教程还会看到数字数据类型示例

NUMERIC类型介绍

PostgreSQL 中,数字数据类型用于存储具有多个有效数字的数字 。换句话说,无涯教程可以说PostgreSQL数值类型用于指定到表中。

下表包含PostgreSQL支持的所有数值数据类型:

名称存储空间范围
smallint 2个字节 -32768至+32767
integer 4个字节 -2147483648至+2147483647
bigint 8个字节 -9223372036854775808至9223372036854775807
decimal变量小数点前最多131072位数字;小数点后最多16383位数字。
numeric变量小数点前最多131072位数字;小数点后最多16383位数字。
real 4个字节 6个十进制数字精度。
double  8个字节 15位小数位数精度
serial 4个字节 1至2147483647
bigserial 8个字节 1至9223372036854775807

Numeric类型语法

PostgreSQL Numeric数据类型的语法如下:

NUMERIC (precision, scale)

假设无涯教程有数字 2356.78。在这个数字中,精度是6 ,而 scale 是2。

以下语法显示具有小数位零位的数值数据类型:

NUMERIC (precision)

而且,如果无涯教程同时忽略了 precision and scale ,则可以具有任何精度和比例,直到达到上述精度和比例的限制。

NUMERIC

Numeric类型示例

让无涯教程看到不同的例子来了解 postgreSQL数字数据类型工作。

如果无涯教程要存储的值比 Numeric列的声明范围,则PostgreSQL会将值四舍五入为定义的小数位数。

在这里,无涯教程还使用 drop命令删除表(如果该表存在于特定数据库中)。

DROP TABLE IF EXISTS Items;

无涯教程将使用 CREATE 命令在数据库中创建 Items 表:

CREATE TABLE Items (
    item_id SERIAL PRIMARY KEY,
    item_name VARCHAR(100) NOT NULL,
    item_price NUMERIC(5,2)
);

执行上述命令后,已成功创建 Items 表,如以下屏幕截图所示:

PostgreSQL Numeric

生成 Items 表后,无涯教程就可以使用 INSERT 命令将价格超过其标尺的价格插入一些项目。在 item_price 列中声明的比例尺:

INSERT INTO Items (item_name, item_price)
VALUES 
('Mercedes Benz ',300.512), 
 ('Lincoln Continental',300.513),
 ('Audi A7',300.514);

实施上述命令后,无涯教程将获得以下输出,显示该值已成功插入到 Items 表中。

PostgreSQL Numeric

由于 item_price 列的小数位数为 2 ,因此PostgreSQL会对值 300.512,300.513进行四舍五入。 300.514 300.51

创建并插入 Items 表的值之后,无涯教程将使用 SELECT 命令返回所有行

SELECT * FROM Items;

执行完上述命令后,无涯教程将得到以下结果:

PostgreSQL Numeric

如果无涯教程要存储一个精度超过声明精度的值,那么PostgreSQL将显示错误,如下面的示例所示:

无涯教程网

INSERT INTO Items (item_name, item_price)
VALUES ('Mercedes Benz',23457.44);

在执行上述命令时,无涯教程将收到以下错误,即数字字段溢出,这意味着具有精度5和小数位2 的字段必须四舍五入为绝对值。小于 10 ^ 3

PostgreSQL Numeric

NUMERIC类型和NaN示例

让无涯教程看一下PostgreSQL数值数据类型和NaN的示例示例。

如果无涯教程想获取数值,那么PostgreSQL NUMERIC数据类型也可以有一个特殊的值,称为NaN,而 NaN 代表非数字

在下面的示例中,无涯教程将更新 item_id 1 nan item_price :

UPDATE Items
SET item_price = 'NaN'
WHERE item_id = 1;

一旦执行上述命令,无涯教程将获得以下消息窗口,该窗口显示特定值已成功更新到 Items 表中。

PostgreSQL Numeric

现在,无涯教程已使用 SELECT 命令从 Items 表中获取所有记录:

SELECT * FROM Items;

执行完上面的语句后,无涯教程将得到以下结果:

PostgreSQL Numeric

要根据商品的 Item_prices 对商品进行分类,无涯教程将使用以下命令:

SELECT * FROM Items
ORDER BY item_price DESC;

执行上述命令后,无涯教程将获得以下输出:

PostgreSQL Numeric

正如无涯教程在上面的屏幕截图中看到的, NaN 大于值 300.51

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入拆解Java虚拟机 -〔郑雨迪〕

Android开发高手课 -〔张绍文〕

说透敏捷 -〔宋宁〕

数据中台实战课 -〔郭忆〕

乔新亮的CTO成长复盘 -〔乔新亮〕

A/B测试从0到1 -〔张博伟〕

说透芯片 -〔邵巍〕

程序员的测试课 -〔郑晔〕

深入浅出可观测性 -〔翁一磊〕

好记忆不如烂笔头。留下您的足迹吧 :)