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