**在CK中關鍵字嚴格區分大小寫**
## 數值類型
ClickHouse則直接使用Int8、Int16、Int32和Int64指代4種大小的Int類型,其末尾的數字正好表明了占用字節的大小

**ClickHouse支持無符號的整數,使用前綴U表示**

## 浮點型FloatX
和mysql一樣,會有精度問題

## Decimal
要求更高精度的數值運算,ClickHouse提 供了Decimal32、Decimal64和Decimal128三種精度的定點數。可以通過 兩種形式聲明定點:簡寫方式有Decimal32(S)、Decimal64(S)、Decimal128(S)三種,原生方式為Decimal(P,S),其中:
·P代表精度,代表總位數(整數部分+小數部分),取值范圍是1 ~38;·S代表規模,代表小數位數,取值范圍是0~P

在使用兩個不同精度的定點數進行四則運算的時候,它們的小數點 位數S會發生變化。
在進行加法運算時,S取最大值。例如下面的查詢,toDecimal64(2,4)與toDecimal32(2,2)相加后S=4:
在進行減法運算時,S取最大值。例如下面的查詢,toDecimal64(2,4)與toDecimal32(2,2)相減后S=4:
在進行乘法運算時,S取和。例如下面的查詢,toDecimal64(2,4)與toDecimal32(2,2)相乘后S=4+2:
在進行除法運算時,S取最大值。例如下面的查詢,toDecimal64(2,4)與toDecimal32(2,2)相除后S=4:但是要保證被除數的S大于除數的S,否則報錯
## 字符串類型
符串類型可以細分為String、FixedString和UUID三類
1. String
字符串由String定義,長度不限
2. FixedString
固定長度的字符串,FixedString使用null字節填充末尾字符,而mysql中Char通常使用空格填充。
3. UUID
UUID是一種數據庫常見的主鍵類型,在ClickHouse中直接把它作為一種數據類型。UUID共有32位,它的格式為8-4-4-4-12。如果一個UUID類型的字段在寫入數據時沒有被賦值,則會依照格式使用0填充。
00000000-0000-0000-0000-000000000000
## 時間類型
1. Date
Date類型不包括具體時間信息,精確到天,支持字符串形式寫入
2)Datetime精確到秒,支持字符串形式寫入
3)DateTime64
可精確到亞秒
2021-08-17 10:30:51.000
## 復雜類型
1)Enum
ClickHouse支持枚舉類型,ClickHouse提供了Enum8和Enum16兩種枚舉類型,Enum8和Enum16分別會對應(String:Int8)和(String:Int16)
~~~
create table test_enum(id Int8 , color Enum('red'=1 , 'green'=2 , 'blue'=3)) engine=Memory ;
insert into test_enum values(1,'red'),(1,'red'),(2,'green');
-- 也可以使用這種方式進行插入數據:
insert into test_enum values(3,3) ;
~~~
2)Array(T)
ClickHouse支持數組復合數據類型,數組中的的數據類型要求一致
~~~
insert into test_array values(1,['eat','drink','la']),(2,array('sleep','palyg','sql'));
~~~
3)Tuple
元組類型,元組類型中可以存儲多種數據類型
4)Nested
嵌套表結構,可以定義任意多個嵌套類型字段
~~~
create table test_nested(
uid Int8 ,
name String ,
props Nested(
pid Int8,
pnames String ,
pvalues String
)
)engine = Memory ;
~~~
## Map
~~~
SELECT map('key1', number, 'key2', number * 2) FROM numbers(3);
~~~
Result:
~~~
┌─map('key1', number, 'key2', multiply(number, 2))─┐
│ {'key1':0,'key2':0} │
│ {'key1':1,'key2':2} │
│ {'key1':2,'key2':4} │
└──────────────────────────────────────────────────┘
~~~
## GEO
## Boolean和Nullable
ck中沒有Boolean類型 ,使用1和0來代表true和false
Nullable 某種數據類型允許為null , 或者是沒有給值的情況下默認是NULL
- ClickHouse
- 第一節 ClickHouse入門
- 1.1 ClickHouse概述
- 1.2 ClickHouse單機安裝
- 1.3 ClickHouse配置
- 1.4 ClickHouse數據庫引擎
- 1.5 ClickHouse集群部署
- 第二節 ClickHouse進階
- 2.1 ClicKHouse數據類型
- 2.2 ClicKHouse基本語法
- 2.3 ClickHouse引擎
- 2.4 ClickHouse函數
- 2.5 ClickHouse分布式表
- 2.6 ClickHouse權限和密碼加密
- 2.7 ClickHouse數據導入和導出
- 第三節 ClicKHouse實戰篇
- 3.1 ClickHouse的JDBC連接
- 3.2 ClickHouse用戶行為分析
- 3.3 ClickHouse實戰
- 第四節 ClicKHouse常見問題
- 4.1 ClickHouse常見問題匯總
- 第五節 ClickHouse其他
- 5.1 ClickHouse可視化工具
- 5.2 ClickHouse學習教程