clickhouse数据类型简介

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)



请使用浏览器的分享功能分享到微信等