1、整型(固定长度)包含有符号和无符号两种
有符号:int*,*代表8,16,32...256等,数字(字节)越大取值范围越大
无符号:Uint*,*代表8,16,32...256等,数字(字节)越大取值范围越大
别名:
Int8 — TINYINT, BOOL, BOOLEAN, INT1. Int16 — SMALLINT, INT2. Int32 — INT, INT4, INTEGER. Int64 — BIGINT
2、UUID是字符串类型,不支持函数计算 自动生成generateuidv4函数
3、时间类型 Date、Date32、DateTime、DateTime64
Date取值范围:[1970-01-01, 2149-06-06],目前上限是2106年
Date32取值范围:[1925-01-01, 2283-11-11]
DateTime取值范围:[1970-01-01 00:00:00, 2106-02-07 06:28:15]
DateTime64取值范围:[1925-01-01 00:00:00, 2283-11-11 23:59:59.99999999] (注意: 最大值的精度是8)
与 DateTime 不同, DateTime64 类型的值不会自动从 String 类型的值转换过来
Date与Date32基本上操作一致:
DateTime:-type 输入是数字会按照时区自动转换
DateTime64:时区存储在元数据中
4、精度类型:float32(float)、float64(double)
0不能当做除数,可以当做被除数,但是在这里打破了界限INF,无穷
5、Decimal(P,S),Decimal32(s)....256(s)
有符号的定点数,可在加、减和乘法运算过程中保持精度。对于除法,最低有效数字会被丢弃(不舍入)
P - 精度。有效范围:[1:38],决定可以有多少个十进制数字(包括分数)
S - 规模。有效范围:[0:P],决定数字的小数部分中包含的小数位数
禁止溢出检查:
精度变化的规则:
加法,减法:S = max(S1, S2)。
乘法:S = S1 + S2
除法:S = S1
6、布尔类型(boolean)用UInt8代替,限制于0和1
7、String(字符串)
字符串可以任意长度的。它可以包含任意的字节集,包含空字节。
8、FixedString(N) 固定长度 N 的字符串(N 必须是严格的正自然数)
9、Array(数组):array(T)或[]
10、元组Tuple(T1,T2....),每个元组都可以有单独的类型
不能在表中存储元组(除内存表),可用于临时列分组
11、嵌套数据类型:Nested(Name1 Type1, Name2 Type2, …)