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)
