美文网首页
openGauss中的数据类型

openGauss中的数据类型

作者: 奥利奥蘸墨水 | 来源:发表于2022-05-18 15:33 被阅读0次

    openGauss中的常用数据类型

    参考

    数值类型

    整数类型

    名称 描述 存储空间 范围
    TINYINT 微整数,别名为INT1。 1字节 0 ~ 255
    SMALLINT 小范围整数,别名为INT2。 2字节 -32,768 ~ +32,767
    INTEGER 常用的整数,别名为INT4。 4字节 -2,147,483,648 ~ +2,147,483,647
    BINARY_INTEGER 常用的整数INTEGER的别名。 4字节 -2,147,483,648 ~ +2,147,483,647
    BIGINT 大范围的整数,别名为INT8。 8字节 -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807
    int16 十六字节的大范围证书,目前不支持用户用于建表等使用。 16字节 -170,141,183,460,469,231,731,687,303,715,884,105,728 ~ +170,141,183,460,469,231,731,687,303,715,884,105,727

    说明:

    • TINYINT、SMALLINT、INTEGER、BIGINT和INT16类型存储各种范围的数字,也就是整数。试图存储超出范围以外的数值将会导致错误。
    • 常用的类型是INTEGER,因为它提供了在范围、存储空间、性能之间的最佳平衡。一般只有取值范围确定不超过SMALLINT的情况下,才会使用SMALLINT类型。而只有在INTEGER的范围不够的时候才使用BIGINT,因为前者相对快得多。

    任意精度型

    名称 描述 存储空间 范围
    NUMERIC[(p[,s])],DECIMAL[(p[,s])] 精度p取值范围为[1,1000],标度s取值范围为[0,p]。说明:p为总位数,s为小数位数。 用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。 未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。
    NUMBER[(p[,s])] NUMERIC类型的别名。 用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。 未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。

    说明:

    • 与整数类型相比,任意精度类型需要更大的存储空间,其存储效率、运算效率以及压缩比效果都要差一些。在进行数值类型定义时,优先选择整数类型。当且仅当数值超出整数可表示最大范围时,再选用任意精度类型。
    • 使用Numeric/Decimal进行列定义时,建议指定该列的精度p以及标度s。

    序列整型

    名称 描述 存储空间 范围
    SMALLSERIAL 二字节序列整型。 2字节 -32,768 ~ +32,767
    SERIAL 四字节序列整型。 4字节 -2,147,483,648 ~ +2,147,483,647
    BIGSERIAL 八字节序列整型。 8字节 -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807
    LARGESERIAL 十六字节序列整形。 16字节 -170,141,183,460,469,231,731,687,303,715,884,105,728 ~ +170,141,183,460,469,231,731,687,303,715,884,105,727

    说明:

    SMALLSERIAL、SERIAL、BIGSERIAL和LARGESERIAL类型不是真正的类型,只是为在表中设置唯一标识做的概念上的便利。因此,创建一个整数字段,并且把它的缺省数值安排为从一个序列发生器读取。应用了一个NOT NULL约束以确保NULL不会被插入。在大多数情况下用户可能还希望附加一个UNIQUE或PRIMARY KEY约束避免意外地插入重复的数值,但这个不是自动的。最后,将序列发生器从属于那个字段,这样当该字段或表被删除的时候也一并删除它。目前只支持在创建表时候指定SERIAL列,不可以在已有的表中,增加SERIAL列。另外临时表也不支持创建SERIAL列。因为SERIAL不是真正的类型,也不可以将表中存在的列类型转化为SERIAL。

    浮点类型

    名称 描述 存储空间 范围
    REAL,FLOAT4 单精度浮点数,不精准。 4字节 -3.402E+38~3.402E+38,6位十进制数字精度。
    DOUBLE PRECISION,FLOAT8 双精度浮点数,不精准。 8字节 -1.79E+308~1.79E+308,15位十进制数字精度。
    FLOAT[(p)] 浮点数,不精准。精度p取值范围为[1,53]。说明:p为精度,表示总位数。 4字节或8字节 根据精度p不同选择REAL或DOUBLE PRECISION作为内部表示。如不指定精度,内部用DOUBLE PRECISION表示。
    BINARY_DOUBLE 是DOUBLE PRECISION的别名。 8字节 -1.79E+308~1.79E+308,15位十进制数字精度。
    DEC[(p[,s])] 精度p取值范围为[1,1000],标度s取值范围为[0,p]。说明:p为总位数,s为小数位位数。 用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。 未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。
    INTEGER[(p[,s])] 精度p取值范围为[1,1000],标度s取值范围为[0,p]。 用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。 -

    货币类型

    名称 存储容量 描述 范围
    money 8 字节 货币金额 -92233720368547758.08 到 +92233720368547758.07

    布尔类型

    名称 描述 存储空间 取值
    BOOLEAN 布尔类型 1字节。 true:真false:假null:未知(unknown)
    • “真”值的有效文本值是:

      TRUE、't'、'true'、'y'、'yes'、'1' 、'TRUE'、true、整数范围内12^63-1、整数范围内-1-2^63。

    • “假”值的有效文本值是:

      FALSE、'f'、'false'、'n'、'no'、'0'、0、'FALSE'、false。

    字符类型

    名称 描述 存储空间
    CHAR(n)CHARACTER(n)NCHAR(n) 定长字符串,不足补空格。n是指字节长度,如不带精度n,默认精度为1。 最大为10MB。
    VARCHAR(n)CHARACTER VARYING(n) 变长字符串。PG兼容模式下,n是字符长度。其他兼容模式下,n是指字节长度。 最大为10MB。
    VARCHAR2(n) 变长字符串。是VARCHAR(n)类型的别名。n是指字节长度。 最大为10MB。
    NVARCHAR2(n) 变长字符串。n是指字符长度。 最大为10MB。
    NVARCHAR(n) 变长字符串。是NVARCHAR2(n)类型的别名。n是指字符长度。 最大为10MB。
    TEXT 变长字符串。 最大为1GB-1,但还需要考虑到列描述头信息的大小, 以及列所在元组的大小限制(也小于1GB-1),因此TEXT类型最大大小可能小于1GB-1。
    CLOB 文本大对象。是TEXT类型的别名。 最大为1GB-1,但还需要考虑到列描述头信息的大小, 以及列所在元组的大小限制(也小于1GB-1),因此CLOB类型最大大小可能小于1GB-1。

    说明:

    • 除了每列的大小限制以外,每个元组的总大小也不可超过1GB-1字节,主要受列的控制头信息、元组控制头信息以及元组中是否存在NULL字段等影响。

    • NCHAR为bpchar类型的别名,NCHAR(n)为bpchar(n)类型的别名。

    • 超过1GB的clob只有dbe_lob相关高级包支持,系统函数不支持大于1GBclob。

    相关文章

      网友评论

          本文标题:openGauss中的数据类型

          本文链接:https://www.haomeiwen.com/subject/hheaurtx.html