Postgresql数据类型-数字类型

news2024/11/29 22:31:21

PostgreSQL支持的数字类型有整数类型、用户指定精度类型、浮点类型、serial类型。

PostgreSQL支持的数字类型如表所示

smallint、integer、bigint都是整数类型,存储一定范围的整数,超出范围将会报错。smallint存储2字节整数,字段定义时可写成int2, integer存储4字节整数,支持的数值范围比smallint大,字段定义时可写成int4,是最常用的整数类型,bigint存储8字节整数,支持的数值范围比integer大,字段定义时可写成int8。对于大多数使用整数类型的场景使用integer就够了,除非integer范围不够用的情况下才使用bigint。定义一张使用integer类型的表如下所示:

 mydb=> CREATE TABLE test_integer (id1 integer, id2 int4) ;
 CREATE TABLE

 decimal和numeric是等效的,可以存储指定精度的多位数据,比如带小数位的数据,适用于要求计算准确的数值运算,声明numeric的语法如下所示:

NUMERIC(precision, scale)

precision是指numeric数字里的全部位数,scale是指小数部分的数字位数,例如18.222的precision为5,而scale为3; precision必须为正整数,scale可以是0或整数,由于numeric类型上的算术运算相比整数类型性能低,因此,如果两种数据类型都能满足业务需求,从性能上考虑不建议使用numeric数据类型。real和double precision是指浮点数据类型,real支持4字节,double precision支持8字节,浮点数据类型在实际生产案例的使用相比整数类型会少些。smallserial、serial和bigserial类型是指自增serial类型,严格意义上不能称之为一种数据类型,如下代码创建一张测试表,定义test_serial表的id字段为serial类型:

 mydb=> CREATE TABLE test_serial (id serial, flag text);
 CREATE TABLE

查看表test_serial的表结构,如下所示:

 mydb=> \d test_serial
                               Table "pguser.test_serial"
Column |  Type   | Collation | Nullable |                 Default
-----------+---------+-----------+----------+-------------------------------------
id     | integer |           | not null | nextval('test_serial_id_seq'::regclass)
            flag   | text    |           |          |

以上显示id字段使用了序列test_serial_id_seq,插入表数据时可以不指定serial字段名称,将自动使用序列值填充,如下所示:

mydb=> INSERT INTO test_serial(flag) VALUES ('a');
INSERT 0 1
mydb=> INSERT INTO test_serial(flag) VALUES ('b');
INSERT 0 1
mydb=> INSERT INTO test_serial(flag) VALUES ('c');
INSERT 0 1
mydb=> SELECT * FROM test_serial;
     id | flag
-------+------
     1 | a
     2 | b
     3 | c
  (3 rows)

PostgreSQL支持数字类型操作符和丰富的数学函数,例如支持加、减、乘、除、模取余操作符,如下所示:

        mydb=> SELECT 1+2,2*3,4/2,8%3;
            ?column? | ? column? | ? column? | ? column?
        -------------+----------+----------+----------
                    3 |        6 |        2 |        2

按模取余如下所示:

        mydb=> SELECT mod(8,3);
          mod
        -----
          2
        (1 row)

四舍五入函数如下所示:

        mydb=> SELECT round(10.2), round(10.9);
            round | round
        ----------+-------
                10 |    11
        (1 row)

返回大于或等于给出参数的最小整数,如下所示:

        mydb=> SELECT ceil(3.6), ceil(-3.6);
            ceil | ceil
        ---------+------
                4 |   -3
        (1 row)

返回小于或等于给出参数的最大整数,如下所示:

        mydb=> SELECT floor(3.6), floor(-3.6);
            floor | floor
        ----------+-------
                3 |    -4
        (1 row)

参考手册https://www.postgresql.org/docs/10/static/datatype.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1176531.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型使用技巧

目录 1、文心一言:https://yiyan.baidu.com/ 2、智谱清言 ChatGLM:https://chatglm.cn/ 3、百川智能:https://www.baichuan-ai.com/ 4、科大讯飞星火大模型:https://xinghuo.xfyun.cn 5、字节跳动 AI 豆包 https://www.do…

idea2023 PoJie以后无法修改内存无效,heap内存设置

1. 打开电脑环境变量 2. 找到对应pojie文件 vmoptions目录 3. 修改这个文件 添加或者修改配置 -Xms128m -Xmx8192m4. 重启idea 修改成功

史上最全,从初级测试到高级测试开发面试题汇总,冲击大厂年50w+

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 接口测试面试相关…

考研408-计算机网络 第一章-计算机网络体系结构学习笔记及习题

第一章 计算机网络体系结构 一 计算机网络概述 1.1 概念及功能 1.1.1 计算机网络的概念 计算机网络就是互连的、自治的计算机系统的集合 互连:通过通信链路互联互通 自治:各个节点之间无主从关系,高度自治的 1.1.2 计算机网络的功能 功…

通过51单片机控制SG90舵机按角度正反转转动

一、前言 本文介绍如何通过51单片机控制SG90舵机实现角度的正反转转动。SG90舵机是一种常用的微型舵机,具有体积小、重量轻、结构简单等特点,被广泛应用于机器人、遥控模型和各种自动控制系统中。 使用51单片机(STC89C52)作为控…

公开IP属地信息如何保护用户的隐私?

公开IP属地信息通常涉及与用户或组织的隐私有关,因此在公开此类信息时需要非常小心,以避免侵犯他人的隐私权。以下是触碰底线的几种情况以及如何保护网络安全和用户隐私: 个人隐私保护: 公开IP属地信息可能泄露用户的物理位置&…

5虚拟局域网构建

前面简单介绍了使用交换机连接不同的服务器,这次我们看看怎么搞虚拟局域网。 虚拟局域网,也被称为VLAN(Virtual Local Area Network),是一个网络的划分概念,使得一组网络设备可以表现得像在同一个物理网络…

大家都在用的数据安全运维管理系统是哪家?有什么功能?

随着数字化大力发展,越来越多的企业开始重视数据安全,开始采购数据安全运维管理系统。但面对市面上多个品牌的数据安全运维管理系统,企业采购时候往往是蒙圈的。因此不少负责人在问,大家都在用的数据安全运维管理系统是哪家&#…

时间序列预测模型实战案例(八)(Informer)个人数据集、详细参数、代码实战讲解

论文地址->Informer论文地址PDF点击即可阅读 代码地址-> 论文官方代码地址点击即可跳转下载GIthub链接 本文介绍 本篇博客带大家看的是Informer模型进行时间序列预测的实战案例,它是在2019年被提出并在ICLR 2020上被评为Best Paper,可以说Inform…

麒麟操作系统登录双因素认证方案 安当加密

麒麟操作系统安全登录方案可以采取以下几种方式: 账户密码认证:用户登录时需要输入正确的账户和密码,账户和密码是用户登录系统的必要条件。为了保证账户和密码的安全性,可以采用加密算法对密码进行加密存储,并且限制…

CTF工具音频隐写神器MP3stego安装和详细使用方法

音频隐写MP3stego安装和详细使用方法 1.MP3stego介绍:2.MP3stego下载安装:3.MP3stego使用教程:4.MP3stego使用案例:5.MP3stego总结: 1.MP3stego介绍: MP3stego是一个在通用的MP3音频文件中隐写的软件&…

1. Collection,List, Map, Queue

1. java集合框架体系结构图 2. Collection派生的子接口 其中最重要的子接口是: 1)List 表示有序可重复列表,重要的实现类有:ArrayList, LinkedList ArrayList特点:底层数组实现,随机查找快,增删…

【FastCAE源码阅读4】VTK OrientationMarkerWidget方向标记组件的使用

FastCAE前处理窗口有个方向指示的组件,会跟踪场景进行旋转,这种设计在很多三维软件都有类似的设计,效果如下图: FastCAE采用的是VTK自带的vtkOrientationMarkerWidget实现的,具体代码如下: void Graph3D…

Springboot在线考试系统 毕业设计-附源码82626

Springboot在线考试系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对在线考试等问题&am…

基于Pytorch框架的LSTM算法(一)——单维度单步滚动预测(2)

#项目说明: 说明:1time_steps滚动预测代码 y_norm scaler.fit_transform(y.reshape(-1, 1)) y_norm torch.FloatTensor(y_norm).view(-1)# 重新预测 window_size 12 future 12 L len(y)首先对模型进行训练; 然后选择所有数据的后wind…

“利用义乌购API揭秘跨境贸易商机:一键获取海量优质商品列表!“

义乌购API可以根据关键词取商品列表。通过调用义乌购API的item_search接口,传入关键词参数,可以获取到符合该关键词的商品列表。 以下是使用义乌购API根据关键词取商品列表的步骤: 注册义乌购开发者账号并获取授权码和密钥。在代码中导入义…

SAP-MM-定义计量单位组

业务场景: 有些物料的计量单位是相同的,为了快速维护物料的计量单位的转换关系,可以创建计量单位组,输入转换关系时,输入组就可以直接转换,不需要单个维护 SPRO-后勤常规-物料主数据-设置关键字段-定义计…

享搭低代码平台:快速构建符合需求的进销存管理系统应用

本文介绍了享搭低代码平台如何赋予用户快速构建进销存管理系统应用的能力。通过在应用商店安装费用进销存管理模板,并通过拖拽方式对模板进行自定义扩充,用户可以快速搭建符合自身需求的进销存管理系统,从而提高管理效率和优化运营。 介绍低代…

shopee、亚马逊卖家如何安全给自己店铺测评?稳定测评环境是关键

大家都知道通过测评可以提升产品的转化率,提升产品的销量,那么做跨境平台的卖家如何安全的给自己店铺测评呢? 无论是亚马逊、拼多多Temu、shopee、Lazada、wish、速卖通、敦煌网、Wayfair、雅虎、eBay、Newegg、乐天、美客多、阿里国际、沃尔…

进销存管理系统如何提高供应链效率?

供应链和进销存系统之间有着密切的联系。进销存系统是供应链管理的一部分,用于跟踪和管理产品的采购、库存和销售。进销存管理是供应链管理的核心流程之一,它有助于提高效率、降低成本、增加盈利,同时确保客户满意度,这对于企业的…