ClickHouse:(二)数据类型
1.整型
固定长度的整型分为:有符号和无符合整型
有符号整型 | 无符号整型 | ||
类型 | 范围 | 类型 | 范围 |
Int8 | -128 : 127 | UInt8 | 0 : 255 |
Int16 | -32768 : 32767 | UInt16 | 0 : 65535 |
Int32 | -2147483648 : 2147483647 | UInt32 | 0 : 4294967295 |
Int64 | -9223372036854775808 : 9223372036854775807 | UInt64 | 0:18446744073709551615 |
使用场景:个数、数量、存储型id
2.浮点型
类型 | |
Float32 | float |
Float64 | double |
弊端:浮点型进行计算时,会出现 四舍五入的误差
select 1-0.9
select 1.12-0.9
3.布尔型
ClickHouse中没有单独的类型存储 booler,可直接使用UInt8类型,取值限制为0和1。(枚举类型)
4.Decimal 型
s 为 标识 小数位
类型 | 相当于常规类型 | 范围 |
Decimal32(s) | Decimal(9,9-s) | 有效位数1~9位 |
Decimal64(s) | Decimal(18,9-s) | 有效位数1~18位 |
Decimal128(s) | Decimal(38,9-s) | 有效位数1~38位 |
有符号的浮点数,可在加、减和乘法运算过程中保持精度。对于除法,最低有效数字会
被丢弃(不舍入)
减法:
除法:实际 两值 相除 约等于 1.551789
5.字符串
类型 | 范围 |
String | 任意长度 |
FixedString(N) | 固定长度 N 的字符串, N 必须是严格的正自然数。读取小于N长度的字符串,会在字符串后面补空字节。读取大于N长度的字符串,直接报错 |
6.枚举型
Enum 保存 'string'= integer 的对应关系
类型 | 描述 |
Enum8 | 'String'= Int8 |
Enum16 | 'String'= Int16 |
用法演示:
CREATE TABLE t_enum
(x Enum8('hello' = 1, 'world' = 2)
)
ENGINE = TinyLog;insert into t_enum values ('hello'),('world');
insert into t_enum values ('world');
如果添加 除枚举之外的 字符串,就会报错,如图:
查看枚举值对应的代码项:
SELECT CAST(x, 'Int8') FROM t_enum;
7.时间类型
类型 | 格式 |
Date | 年 - 月 - 日 |
Datetime | 年 - 月 - 日 时 : 分 : 秒 |
Datetime64 | 年 - 月 - 日 时 : 分 : 秒 . 亚秒 |
8.数组
类型 | 描述 |
Array(T) | 由 T 类型元素组成的数组 |
T 可以是任意类型,包含数组类型。 但不推荐使用多维数组, ClickHouse 对多维数组
的支持有限。
创建数组的方式(1):
SELECT array(1, 2) AS x, toTypeName(x) ;

创建数据的方式(2):
select [1,2] as x ,toTypeName(x);