clickhouse資料型別簡介

水逸冰發表於2020-12-27

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)



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31480688/viewspace-2745721/,如需轉載,請註明出處,否則將追究法律責任。

相關文章