數(shù)據(jù)類型
本文描述云數(shù)據(jù)庫ClickHouse的數(shù)據(jù)類型。
數(shù)據(jù)類型列表
ClickHouse完整數(shù)據(jù)類型介紹,請參考開源官方數(shù)據(jù)類型介紹。
分類 | 關(guān)鍵字 | 數(shù)據(jù)類型 | 取值/取值范圍 |
整數(shù)類型 |
| Int8 | 取值范圍: |
| Int16 | 取值范圍 : | |
| Int32 | 取值范圍: | |
| Int64 | 取值范圍 : | |
浮點類型 |
| 單精度浮點數(shù) | 同C語言Float類型,單精度浮點數(shù)在機內(nèi)占4個字節(jié),用32位二進制描述。 |
| 雙精度浮點數(shù) | 同C語言Double類型,雙精度浮點數(shù)在機內(nèi)占8個字節(jié),用64位二進制描述。 | |
Decimal類型 |
| Decimal | 有符號的定點數(shù),可在加、減和乘法運算過程中保持精度。支持幾種寫法:
|
字符串類型 |
| 字符串 | 字符串可以是任意長度的。它可以包含任意的字節(jié)集,包含空字節(jié)。因此,字符串類型可以代替其他 DBMSs 中的VARCHAR、BLOB、CLOB 等類型。 |
FixedString | 固定字符串 | 當數(shù)據(jù)的長度恰好為N個字節(jié)時,F(xiàn)ixedString類型是高效的。 在其他情況下,這可能會降低效率。可以有效存儲在FixedString類型的列中的值的示例:
| |
時間日期類型 |
| 日期 | 用兩個字節(jié)存儲,表示從 1970-01-01(無符號)到當前的日期值。日期中沒有存儲時區(qū)信息。 |
| 時間戳 | 用四個字節(jié)(無符號的)存儲 Unix 時間戳。允許存儲與日期類型相同的范圍內(nèi)的值。最小值為 1970-01-01 00:00:00。時間戳類型值精確到秒(沒有閏秒)。時區(qū)使用啟動客戶端或服務器時的系統(tǒng)時區(qū)。 | |
| Datetime64 | 此類型允許以日期(date)加時間(time)的形式來存儲一個時刻的時間值。 | |
布爾型 | Boolean | Boolean | ClickHouse沒有單獨的類型來存儲布爾值。可以使用UInt8 類型,取值限制為0或 1。 |
數(shù)組類型 |
| Array | Array(T),由 T 類型元素組成的數(shù)組。T 可以是任意類型,包含數(shù)組類型。但不推薦使用多維數(shù)組,ClickHouse對多維數(shù)組的支持有限。例如,不能在MergeTree表中存儲多維數(shù)組。 |
元組類型 |
| Tuple | Tuple(T1, T2, ...),元組,其中每個元素都有單獨的類型,不能在表中存儲元組(除了內(nèi)存表)。它們可以用于臨時列分組。在查詢中,IN表達式和帶特定參數(shù)的 lambda 函數(shù)可以來對臨時列進行分組。 |
Domain數(shù)據(jù)類型 |
| Domain | Domain類型是特定實現(xiàn)的類型: IPv4是與UInt32類型保持二進制兼容的Domain類型,用于存儲IPv4地址的值。它提供了更為緊湊的二進制存儲的同時支持識別可讀性更加友好的輸入輸出格式。 IPv6是與FixedString(16)類型保持二進制兼容的Domain類型,用于存儲IPv6地址的值。它提供了更為緊湊的二進制存儲的同時支持識別可讀性更加友好的輸入輸出格式。 |
枚舉類型 |
| Enum8 | 取值范圍: |
| Enum16 | 取值范圍 : | |
可為空 |
| Nullable | 除非在 ClickHouse 服務器配置中另有說明,否則 NULL 是任何 Nullable 類型的默認值。Nullable 類型字段不能包含在表索引中。 |
嵌套類型 |
| nested | 嵌套的數(shù)據(jù)結(jié)構(gòu)就像單元格內(nèi)的表格。嵌套數(shù)據(jù)結(jié)構(gòu)的參數(shù)(列名和類型)的指定方式與CREATE TABLE查詢中的指定方式相同。每個表行都可以對應于嵌套數(shù)據(jù)結(jié)構(gòu)中的任意數(shù)量的行。 |