ClickHouse数据类型

ClickHouse数据类型分:基础类型、复合类型和特殊类型
一、 基础类型
分数字、字符串和时间
1、 数字
分整数、浮点数和定点数

  • 整数
名称 大小(字节) 范围
Int8 1 -128 ~ 127
Int16 2 -32768 ~ 32767
Int32 4 -2147483648 ~ 2147483647
Int64 8 -9223372036854775808 ~ 9223372036854775807
UInt8 1 0 ~ 255
UInt16 2 0 ~ 65535
UInt32 4 0 ~ 4294967295
UInt64 8 0 ~ 18446744073709551615
  • 浮点数
名称 大小(字节) 有效精度
Float32 4 7
Float64 8 16
  • 定点数
名称 等效声明 范围
Decimal32(S) Decimal(1~9,S) -110^(9-S) ~ 110^(9-S)
Decimal64(S) Decimal(10~18,S) -110^(18-S) ~ 110^(18-S)
Decimal128(S) Decimal(19~38,S) -110^(38-S) ~ 110^(38-S)

四则运算后的精度变化规则

四则运算 规则 示例
加法 S = max(S1,S2) SELECT toDecimal64(6,8) + toDecimal64(3,2)
减法 S = max(S1,S2) SELECT toDecimal64(6,8) - toDecimal64(3,2)
乘法 S = S1 + S2 SELECT toDecimal64(6,8) * toDecimal64(3,2)
除法 S = S1 / S2 SELECT toDecimal64(6,8) / toDecimal64(3,2)

2、 字符串:String、FixedString和UUID
 String:长度不限,可以不指定长度
 FixedString:固定长度字符串,末尾用空字符填充,故长度=固定字符串长度+2
 UUID:32位,格式:8-4-4-4-12。赋值时如果没指定,用0代替。
3、 时间:DateTime、DateTime64和Date
 DateTime:日期+时分秒,例如:2021-04-28 21:09:06
 DateTime64:日期+时分亚秒,例如:2021-04-28 21:09:06.12
 Date:日期,例如:2021-04-28
二、 复合类型
分数组、元组、枚举和嵌套

类型 描述 示例
数组(Array) 用array(1,2,3)或者[1,2,3]方式定义,各类型之间必须兼容 c Array(String)
元组(Tuple) 由1到n个元素组成,每个元素之间的数据类型可以不一样。用tuple(T)或(T)方式定义。 c Tuple(String,Int8)
枚举(Enum) 定义常量,两种类型Enum8和Enum16,使用键值方式定义数据。 c Enum8(‘ready’=1,’start’=2,’success’=3,’error’=4)
嵌套(Nested) 可以定义任意多个字段,只支持一级嵌套,即嵌套内不能在使用嵌套。嵌套的本质是一种多维数组。在访问时使用点符号 c Nested( id Int8,name String(255))

三、 特殊类型
1、 Nullable:和基础类型搭配使用,不能使用数组和元组,不能作为索引字段
2、 Domain:分为IPv4和IPv6

上一篇:蓝桥杯 基础练习 高精度加法


下一篇:pandas之读取文件