PostgreSQL教程

PostgreSQL 数值

在本节中,我们将了解 PostgreSQL数值数据类型的工作原理,该数据类型允许我们存储数值数据。而且,我们还会看到 数字数据类型示例

什么是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 precision 8个字节 15位小数位数精度 变量精度,不精确
serial 4个字节 1至2147483647 自动递增整数
bigserial 8个字节 1至9223372036854775807 大自动递增整数

PostgreSQL数值数据类型的语法

PostgreSQL数值数据类型的语法如下:
NUMERIC (precision, scale)
在上面的语法中,我们使用了以下参数:
参数 说明
Numeric 它是一个关键字,用于存储数字。
Precision 它是数字总数
Scale 以小数部分表示。
通过看下面的示例,我们可以理解精度和小数位数的概念:
假设我们有数字 2356.78、在此数字中, 精度为6 比例为2、
注意: 在PostgreSQL中,数字数据类型的值最多可以在小数点前的131,072位,小数点后的16,383位。数值数据类型小数位数可以是正数(+)或零(0)。
以下语法使用 小数位零位显示数值数据类型:
NUMERIC (precision)
如果忽略了 精度和小数位数,我们可以具有任意精度,并且可以达到上述精度和小数位数的极限。
NUMERIC
注意: 在PostgreSQL中,Numeric和Decimal类型彼此对应,并且它们都遵循SQL标准。
如果我们不需要 精度,则由于数字 数值的计算通常较慢,因此我们无法使用数值数据类型比 双精度,浮点数整数。

PostgreSQL数值数据类型的示例

让我们请参阅不同的示例以了解 PostgreSQL数值数据类型的工作原理。

存储数值的示例

PostgreSQL将舍入该值如果我们要存储比 数字列的声明小数位数更广泛的值,则应使用定义的小数位数。
为此,我们将创建一个新的表名 <在 CREATE 命令的帮助下,strong> Items 表,并使用 插入 命令。
在此,我们还使用 drop命令 t o如果该表存在于特定数据库中,则将该表删除。
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数值
一旦 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数值
因为 item_price 列为 2 ,PostgreSQL将值四舍五入为 300.512,300.513、 300.514 300.51
创建并插入 Items 表的值后,我们将使用 SELECT 命令,它返回 Items 表的所有行:
SELECT * FROM Items;
输出
执行上述命令后,我们将得到以下结果:
PostgreSQL数值
如果我们要存储一个精度超过声明的精度的值,那么PostgreSQL将显示错误,如下面的示例所示:
INSERT INTO Items (item_name, item_price)
VALUES ('Mercedes Benz',23457.44);
输出
在执行上述命令时,我们将得到以下错误,即 数字字段溢出,这意味着具有 精度5和标度2 必须舍入为小于 10 ^ 3 的绝对值。
PostgreSQL Numeric

PostgreSQL NUMERIC数据类型和NaN的示例

让我们看一下PostgreSQL Numeric数据类型和NaN的示例示例。
如果要获取数值,则PostgreSQL NUMERIC数据类型也可以具有一个特殊的值,称为NaN,而 NaN 表示 not-a-number
在下面的示例中,我们将 item_id 1 item_price 更新为 NaN :
UPDATE Items
SET item_price = 'NaN'
WHERE item_id = 1;
输出
一旦执行上述命令,我们将获得以下消息窗口,该窗口显示特定值已成功更新到 Items 表。
PostgreSQL数值
注意: 在上面的Update语句中,我们使用单引号('')括住了NaN。
现在,我们已使用 SELECT 命令从 Items 表中获取所有记录:
SELECT * FROM Items;
输出
执行上面的语句后,我们将得到以下结果:
PostgreSQL数值
通常,NaN不等于任何数字,包括其自身,这意味着以下表达式 NaN = NaN 将返回 FALSE
但是,两个NaN值可以相等,并且NaN比其他数字更重要。此执行使 PostgreSQL 可以对数值进行分类,并在基于树的索引中使用它们。
根据项目的 Item_prices对项目进行分类,我们将使用以下命令:
SELECT * FROM Items
ORDER BY item_price DESC;
输出
执行上述命令后,我们将得到以下输出:
PostgreSQL Numeric
如我们在上面的屏幕截图中所见, NaN 大于值 300.51

概述

PostgreSQL数值数据类型部分中,我们学习了以下主题:
PostgreSQL 数值数据类型可以使用数值列来存储数字。 PostgreSQL的数字数据类型可以与NaN(非数字)一起使用。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4