clickhouse数据类型
1.数值类型
Int
名称 | 大小(字节) | MySQL类型 |
---|---|---|
Int8 | 1 | Tinyint |
Int16 | 2 | Smallint |
Int32 | 4 | Int |
Int64 | 8 | Bigint |
clickhouse也支持无符号的整数。
名称 | 大小(字节) | MySQL类型 |
---|---|---|
UInt8 | 1 | Tinyint Unsigned |
UInt16 | 2 | Smallint Unsigned |
UInt32 | 4 | Int Unsigned |
UInt64 | 8 | Bigint Unsigned |
Float
名称 | 有限位数 | MySQL类型 |
---|---|---|
Float32 | 7 | Float |
Float64 | 16 | Double |
如果超过有效精度,会出现数据误差:
mdb01 :) select toFloat32('0.123456789') as a;
SELECT toFloat32('0.123456789') AS a
┌──────────a─┐
│ 0.12345679 │
└────────────┘
1 rows in set. Elapsed: 0.002 sec.
clickhouse浮点数支持正无穷,负无穷以及非数字
正无穷:
mdb01 :) select 1/0;
SELECT 1 / 0
┌─divide(1, 0)─┐
│ inf │
└──────────────┘
负无穷:
mdb01 :) select -1/0;
SELECT -1 / 0
┌─divide(-1, 0)─┐
│ -inf │
└───────────────┘
非数字:
mdb01 :) select 0/0;
SELECT 0 / 0
┌─divide(0, 0)─┐
│ nan │
└──────────────┘
Decimal
名称 | mysql类型 |
---|---|
Decimal32(S) | Decimal(1-9, S) |
Decimal64(S) | Decimal(10-18, S) |
Decimal128(S) | Decimal(19-38, S) |
2.字符串类型
String
字符串用String类型,长度不限。而且不限定字符集。
FixedString(N)
类似MySQL的Char类型,属于定长字符。但与Char不同,Char末尾长度不够时用空格填充,但是FixedString用null填充。
UUID
UUID共32位,格式为8-4-4-4-12
SELECT generateUUIDv4()
┌─────────────────────generateUUIDv4()─┐
│ c4c3db13-bbde-4633-8ea5-27d870fc91d8 │
└──────────────────────────────────────┘
3.时间类型
DateTime
包含时分秒,精确到秒,支持字符串形式写入。
DateTime64
DateTime64(precision, [timezone])
Date
精确到天
复合类型
数组
array(T),或者简写为[T].
mdb01 :) select array(1,2);
SELECT [1, 2]
┌─array(1, 2)─┐
│ [1,2] │
└─────────────┘
1 rows in set. Elapsed: 0.003 sec.
mdb01 :) select [1,2];
SELECT [1, 2]
┌─[1, 2]─┐
│ [1,2] │
└────────┘
1 rows in set. Elapsed: 0.002 sec.
元组
tuple(T),或者简写为(T)
枚举
Enum8:(String:Int8)
Enum16:(String:Int16)