一、常用数据类型
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类型
网络地址类型
评论
有用 0
墨值悬赏

