ClickHouse数据类型

数据类型

1.基本数据类型

1.1.整数

  • 整数Int8、Int16、Int32 和 Int64
    • 如果加U就是无符号位
    • 后面的数字代表位
    • Int8就相当于以前学的byte,Int16就相当于short,int32就相当于int,int64就相当于long

1.2.浮点数

  • 浮点数 Float32 和 Float64
    • Float32就相当于是Float,Float64就相当于是Double

1.3.定点数

  • 定点数 Decimal32、Decimal64 和Decimal128,Decimal(P,S)
    • 后面的数字代表位
    • P - 规模。效范围:[1-38],决定可以有多少个十进制数字(包括分数)
    • S - 精度。有效范围:[0-P],决定数字的小数部分中包含的小数位数
  • 等效声明
    • Decimal32
      • Decimal(1~9,S)
    • Decimal64
      • Decimal(10~18,S)
    • Decimal128
      • Decimal(19~38,S)
  • 运算精度变化的规则
    • 加法,减法:S = max(S1, S2)。
    • 乘法:S = S1 + S2。(s1范围>=s2范围)
    • 除法:S = S1(s1为被除数,s1/s2)

1.4.布尔

  • 布尔 UInt8 (无符号的byte只有0和1)限制值为0或1

2.字符串

  • String、FixedString 和 UUID
    • String 不限制长度(变长),相当于Varchar、Text、Clob 和 Blob 等字符类型
    • FixedString(N)相当于Char,长度固定,数据长度不够时,添加空字节(null);长度过长返回错误消息
    • UUID:32位,格式8-4-4-4-12,如果未被赋值,则用0填充

3.日期时间

  • Date、DateTime、DateTime64
    • Date: 2020-02-02 精确到天
    • DateTime: 2020-02-02 20:20:20 精确到秒
    • DateTime64: 2020-02-02 20:20:20.335 精确到亚秒,可以设置精度

4.复合类型

4.1.数组

  • 创建数据:array(数据类型)或[],类型必须相同

4.2.元组

  • 由多个元素组成,允许不同类型
  • 创建数据:(T1, T2, …)或者Tuple(T1, T2, …)

4.3.枚举

  • Enum8和Enum16两种枚举类型,它们除了取值范围不同之外,别无二致
  • 枚举固定使用(String:Int)Key/Value键值对的形式定义数据(string的key,int的value)
    • Enum8和Enum16分别会对应(String:Int8)和(String:Int16)
  • 用(String:Int) Key/Value键值对的形式定义数据,键值对不能同时为空,不允许重复,key允许为空字符串,需要看到对应的值进行转换

4.4.嵌套

  • Nested(Name1 Type1,Name2 Type2,…)

  • 相当于表中嵌套一张表,插入时相当于一个多维数组的格式,一个字段对应一个数组

5.其他类型

5.1.Nullable(TypeName)

  • Nullable(TypeName)
    • 只能与基础数据类型搭配使用
    • 表示某个类型的值可以为NULL
    • Nullable(Int8)表示可以存储Int8类型的值,没有值时存NULL
  • 注意
    • 不能与复合类型数据一起使用、
    • 不能作为索引字段
    • 尽量避免使用,字段被Nullable修饰后会额外生成[Column].null.bin 文件保存Null值,增加开销

5.2.Domain(域)

  • IPv4 使用 UInt32 存储。如 116.253.40.133
  • IPv6 使用 FixedString(16) 存储。如 2a02:aa08:e000:3100::2
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值