天天看点

openGauss数据类型

一、常用数据类型

1、数值类型

(1)整型类型

  • TINYINT
    • 占用1字节
    • 对应关键字为TINYINT、INT1
  • SMALLINT
    • 占用2字节
    • 对应关键字为SMALLINT、INT2
  • INTEGER
    • 占用4字节
    • 对应关键字为INTEGER、INT4、BINARY_INTEGER
  • BIGINT
    • 占用8字节
    • 对应关键字BIGINT、INT8

(2)单精度浮点类型

  • REAL/FLOAT4
    • 占用4字节

(3)双精度浮点类型

  • FLOAT8/DOUBLE PRECISION/BINARY_DOUBLE

(4)序列整型

  • SMALLSERIAL
    • 2字节序列整型
  • SERIAL
    • 4字节序列整型
  • BIGSERIAL
    • 8字节序列整型

(5)任意精度型

  • NUMERIC[(p[,s])],DECIMAL[(p[,s])]
    • 精度p取值范围为[1,1000],标度s取值范围为[0,p]
    • p为总位数,s为小数位数
    • 用户声明精度,每四位(十进制)占用两个字节,然后在整个数据上加上八个字节的额外开销
  • NUMBER[(p[,s])]
    • NUMERIC类型的别名
2、字符类型

(1)定长字符串类型

  • CHAR(n) CHARACTER(n) NCHAR(n)
    • 定长字符串,不足补空格
    • n是指字节长度,如不带精度n,默认精度为1
    • 最大为10MB

(2)变长字符串类型

  • CLOB/TEXT
    • 存储文本大对象
    • 最大为1GB - 8203字节(即1073733621字节)
  • VARCHAR(n)
    • 用于存储变长字符串,最大为10MB
    • 对应关键字为VARCHAR/VARCHAR2/NVARCHAR2/CHARACTER VARYING
3、日期类型
  • DATE
    • 日期和时间
    • 4字节(实际存储空间大小为8字节)
  • TIME[§] [WITHOUT TIME ZONE]
    • 只用于一日内时间
    • p表示小数点后的精度,取值范围为0~6
    • 8字节
  • TIME[§] [WITH TIME ZONE]
    • 只用于一日内时间,带时区
    • p表示小数点后的精度,取值范围为0~6
    • 12字节
  • TIMESTAMP[§] [WITHOUT TIME ZONE]
    • 日期和时间
    • p表示小数点后的精度,取值范围为0~6
    • 8字节
  • TIMESTAMP[§] [WITH TIME ZONE]
    • 日期和时间,带时区。TIMESTAMP的别名为TIMESTAMPTZ
    • p表示小数点后的精度,取值范围为0~6
    • 8字节
  • SMALLDATETIME
    • 日期和时间,不带时区
    • 精确到分钟,秒位大于等于30秒进一位
    • 8字节
  • INTERVAL DAY(I) TO SECOND§
    • 时间间隔,X天X小时X分X秒
    • I:天数的精度,取值范围为0~6。为适配Oracle语法,未实现具体功能
    • p:秒数的精度,取值范围为0~6。小数末尾的零不显示
    • 16字节
  • INTERVAL[FIELDS][§]
    • 时间间隔
    • fields:可以是YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, DAY TO HOUR, DAY TO SECOND, HOUR TO MINUTE, HOUR TO SECOND, MINUTE TO SECOND
    • p:秒数的精度,取值范围为0~6,且fields为SECOND, DAY TO SECOND, HOUR TO SECOND或MINUTE TO SECOND时,参数p才有效。小数末尾的零不显示
    • 12字节
  • reltime
    • 相对时间间隔。格式为:X year Xmons X days XX:XX:XX
    • 采用儒略历计时,规定一年为365.25天,一个月为30天,计算输入值对应的相对时间间隔,输出采用POSTGRES格式
    • 4字节
4、二进制类型
  • BLOB
    • 二进制大对象(列存储不支持BLOB类型)
    • 最大为1GB - 8203字节(即1073733621字节)
  • RAW
    • 变长的十六进制类型(列存储不支持RAW类型)
    • 4字节加上实际的十六进制字符串。最大为1GB - 8203字节(即1073733621字节)
  • BYTEA
    • 变长的二进制字符串
    • 4字节加上实际的二进制字符串。最大为1GB - 8203字节(即1073733621字节)

二、其他数据类型

  • 布尔类型
  • 货币类型
  • 几何类型
  • UUID类型
  • JSON类型
  • 网络地址类型