ClickHouse数据类型

2021/4/28 18:26:37

本文主要是介绍ClickHouse数据类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

  • 整数
名称大小(字节)范围
Int81-128 ~ 127
Int162-32768 ~ 32767
Int324-2147483648 ~ 2147483647
Int648-9223372036854775808 ~ 9223372036854775807
UInt810 ~ 255
UInt1620 ~ 65535
UInt3240 ~ 4294967295
UInt6480 ~ 18446744073709551615
  • 浮点数
名称大小(字节)有效精度
Float3247
Float64816
  • 定点数
名称等效声明范围
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 + S2SELECT toDecimal64(6,8) * toDecimal64(3,2)
除法S = S1 / S2SELECT 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



这篇关于ClickHouse数据类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程