ClickHouse数据类型

**

数值:**

Int Ranges
Int8 — [-128 : 127]
Int16 — [-32768 : 32767]
Int32 — [-2147483648 : 2147483647]
Int64 — [-9223372036854775808 : 9223372036854775807]
Int128 — [-170141183460469231731687303715884105728 : 170141183460469231731687303715884105727]
Int256 — [-57896044618658097711785492504343953926634992332820282019728792003956564819968 : 57896044618658097711785492504343953926634992332820282019728792003956564819967]
推荐使用: UInt
Uint Ranges
UInt8 — [0 : 255]
UInt16 — [0 : 65535]
UInt32 — [0 : 4294967295]
UInt64 — [0 : 18446744073709551615]
UInt256 — [0 : 115792089237316195423570985008687907853269984665640564039457584007913129639935]

浮点数

单精度浮点: Float32 4个字节, 有效精度7
双精度浮点: Float64 8个字节, 有效精度16
位数超过会发生溢出;
注意: 浮点数支持正无穷(inf)、负无穷(-inf)及非数字(nan)的表达式

Decimal

如果需要使用更高精度运算,需要使用Decimal
Decimal32(S),Decimal64(S),Decimal128(S)
或者Decimal(P,S)

String 字符串

可以存储任意长度字符串,包括Null

FixedString 定长字符串

FixedString 与Char都是定长字符串,对于字符有明确长度的场合建议使用固定长度字符串;
定长申明FixedString(N), X表示字符长度;
FixedString与Char不同的是 FixedString 使用null填充末尾字符,Char使用空格填充;

UUID

使用 generateUUIDv4()生成

时间类型:

1, DateTime 日期时间,精确到秒, 如: 2021-03-01 00:00:00
2, DateTime64 日期时间,精确到亚秒, 如: 2021-03-01 00:00:00:00
3, Date 日期, 精确到天; 如: 2021-03-01

数组Array

数组里面可以有不同类型的元素,但是类型必须兼容;
类型: c1 Array(Int8) Comment ‘数组example’;
array(1,2.0 ,3.1)

元组Tuple

元组里面的每个元素允许不同的类型,类型也可以不兼容;
字段定义: c2 Tuple(String,Int8)
tupple(1,‘China’,now())

枚举Enum

Enum8: 底层实际存储: (String:Int8) Key/Value
Enum16: 底层存储: (String:Int16) Key/Value

1, Key和Value需要保证唯一性;
2, Key可以为空,但Key和Value不可以同时为空;

字段定义: c1 Enum(‘ready’ = 1,‘start’ = 2,‘success’ = 3,‘error’ = 4) comment ‘枚举值举例’;
eg: INSERT INTO Enum_TB VALUES(‘ready’)

嵌套Nested

字段定义:
dep Nested(
id Uint8,
name String,
age Uint8)
注意: 每个嵌套字段只支持一级嵌套,不支持多级嵌套;(嵌套字段中不允许再定义嵌套类型)
insert into Nested_tb(dep.id,dep.name,dep.age) values([1,2,3],[‘教员’,‘彭德怀’,‘林彪’],[20,20,20])

IPv4和IPv6

用于保存IP地址,底层用整形存储,并且可以检查地址是否合法

Nullable

如果要明确Insert空字符串,则需要Nullable;
eg: Nullable(String); Nullable(Int8)
定义Nullable会影响CH的性能,尽量不要用;

CH与其他关系型数据库类型对比:

Int8 — TINYINT, BOOL, BOOLEAN, INT1
Int16 — SMALLINT, INT2.
Int32 — INT, INT4, INTEGER.
Int64 — BIGINT.
Float32 — float.
Float64 — double.
String - VARCHAR, BLOB, TEXT
FixedString - Char
DateTime - datetime

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值