文档

数据类型

更新时间:
一键部署

云数据库 SelectDB 版的数据类型与MySQL的数据类型高度兼容。本文为您介绍SelectDB支持的数据类型。

概述

云数据库 SelectDB 版支持标准SQL语法,采用MySQL网络连接协议,高度兼容MySQL相关生态。目前SelectDB版本支持的数据类型是MySQL的一个子集。

数据类型

您可以通过SHOW DATA TYPES;语句查看SelectDB支持的所有数据类型。目前SelectDB已支持的数据类型列表如下。

类型名称

字节数

描述

BOOLEAN

1

布尔值,0代表false,1代表true。

TINYINT

1

有符号整数,范围[-128, 127]。

SMALLINT

2

有符号整数,范围[-32768, 32767]。

INT

4

有符号整数,范围[-2147483648, 2147483647]。

BIGINT

8

有符号整数,范围[-9223372036854775808, 9223372036854775807]。

LARGEINT

16

有符号整数,范围[-2^127 + 1 ~ 2^127 - 1]。

FLOAT

4

浮点数,范围[-3.4*10^38 ~ 3.4*10^38]。

DOUBLE

8

浮点数,范围[-1.79*10^308 ~ 1.79*10^308]。

DECIMAL

4/8/16

高精度定点数,格式:DECIMAL(M[,D])

其中,M代表一共有多少个有效数字(precision),D代表小数位有多少数字(scale)。

有效数字M的范围是[1, 38],小数位数字数量D的范围是[0, precision]。

  • 0 < precision <= 9的场合,占用4字节。

  • 9 < precision <= 18的场合,占用8字节。

  • 16 < precision <= 38的场合,占用16字节。

DATE

16

日期类型,目前的取值范围是['0000-01-01', '9999-12-31'],默认的打印形式是'yyyy-MM-dd'。

DATETIME

16

日期时间类型,格式:DATETIME([P])

可选参数P表示时间精度,取值范围是[0, 6],即最多支持6位小数(微秒)。不设置时为0。

取值范围是['0000-01-01 00:00:00[.000000]', '9999-12-31 23:59:59[.999999]']。

打印的形式是'yyyy-MM-dd HH:mm:ss.SSSSSS'。

CHAR

/

定长字符串,格式:CHAR(M)。M代表的是定长字符串的字节长度。CHAR类型的范围是1~255字节。

VARCHAR

/

变长字符串,格式:VARCHAR(M)。M代表的是变长字符串的字节长度。VARCHAR类型的范围是1~65533个字节。

说明

变长字符串是以UTF-8编码存储的,因此通常英文字符占1个字节,中文字符占3个字节。

STRING

/

变长字符串,默认支持1048576字节(1MB),最大可调到2147483643字节(2 GB)。

可通过BE配置string_type_length_soft_limit_bytes调整。

String类型只能用在Value列,不能用在Key列和分区分桶列。

HLL

/

HLL是模糊去重,在数据量大的情况性能优于Count Distinct。

HLL的误差通常在1%左右,有时会达到2%。

HLL不能作为Key列使用,建表时配合聚合类型为HLL_UNION。

HLL类型不需要指定长度和默认值。长度根据数据的聚合程度系统内控制。

HLL列只能通过配套的hll_union_agghll_raw_agghll_cardinalityhll_hash进行查询或使用。

BITMAP

/

BITMAP类型的列可以在Aggregate表或Unique表中使用。在Unique表中使用时,其必须作为非Key列使用。在Aggregate表中使用时,其必须作为非Key列使用,且建表时配合的聚合类型为BITMAP_UNION。用户不需要指定长度和默认值。长度根据数据的聚合程度系统内控制。

BITMAP列只能通过配套的bitmap_union_count、bitmap_union、bitmap_hash、bitmap_hash64等函数进行查询或使用。

QUANTILE_STATE

/

QUANTILE_STATE是一种计算分位数近似值的类型,在导入时会对相同的Key,不同Value进行预聚合,当Value数量不超过2048时采用明细记录所有数据,当Value数量大于2048时采用TDigest算法,对数据进行聚合(聚类)保存聚类后的质心点。

QUANTILE_STATE不能作为Key列使用,建表时配合聚合类型为QUANTILE_UNION。

QUANTILE_STATE类型不需要指定长度和默认值。长度根据数据的聚合程度系统内控制。

QUANTILE_STATE列只能通过配套的QUANTILE_PERCENTQUANTILE_UNIONTO_QUANTILE_STATE等函数进行查询或使用。

ARRAY

/

由任意基础类型(INT、FLOAT等)元素组成的数组,不能作为Key列使用。目前支持在Duplicate和Unique模型的表中使用。

MAP

/

由<K,V>类型元素组成的Map,不能作为Key列使用。目前支持在Duplicate和Unique模型的表中使用。

JSON

/

二进制JSON类型,采用二进制JSON格式存储,通过JSON函数访问JSON内部字段。

默认支持1048576字节(1MB),可调大到2147483643字节(2GB)。可通过BE配置jsonb_type_length_soft_limit_bytes调整。

AGG_STATE

/

聚合函数,只能配合state/merge/union函数组合器使用。

AGG_STATE不能作为Key列使用,建表时需要同时声明聚合函数的签名。

用户不需要指定长度和默认值。实际存储的数据大小与函数实现有关。

  • 本页导读 (1)