1.整型
固定长度的整型分为:有符号和无符合整型
有符号整型 | 无符号整型 | ||
类型 | 范围 | 类型 | 范围 |
Int8 |
-128 : 127
| UInt8 |
0 : 255
|
Int16 |
-32768 : 32767
| UInt16 |
0 : 65535
|
Int32 |
-2147483648 : 2147483647
| UInt32 |
0 : 4294967295
|
Int64 |
-9223372036854775808 : 9223372036854775807
| UInt64 |
0:18446744073709551615
|
使用场景:个数、数量、存储型id
2.浮点型
类型 | |
Float32 | float |
Float64 | double |
弊端:浮点型进行计算时,会出现 四舍五入的误差
select 1-0.9
select 1.12-0.9
3.布尔型
ClickHouse中没有单独的类型存储 booler,可直接使用UInt8类型,取值限制为0和1。(枚举类型)
4.Decimal 型
s 为 标识 小数位
类型 | 相当于常规类型 | 范围 |
Decimal32(s) | Decimal(9,9-s) | 有效位数1~9位 |
Decimal64(s) | Decimal(18,9-s) | 有效位数1~18位 |
Decimal128(s) | Decimal(38,9-s) | 有效位数1~38位 |
有符号的浮点数,可在加、减和乘法运算过程中保持精度。对于除法,最低有效数字会
被丢弃(不舍入)
减法:
除法:实际 两值 相除 约等于 1.551789
5.字符串
类型 | 范围 |
String | 任意长度 |
FixedString(N) |
固定长度
N
的字符串,
N
必须是严格的正自然数。读取小于N长度的字符串,会在字符串后面补空字节。读取大于N长度的字符串,直接报错
|
6.枚举型
Enum 保存
'string'= integer
的对应关系
类型 | 描述 |
Enum8
|
'String'= Int8
|
Enum16
|
'String'= Int16
|
用法演示:
CREATE TABLE t_enum
(
x Enum8('hello' = 1, 'world' = 2)
)
ENGINE = TinyLog;
insert into t_enum values ('hello'),('world');
insert into t_enum values ('world');
如果添加 除枚举之外的 字符串,就会报错,如图:
查看枚举值对应的代码项:
SELECT CAST(x, 'Int8') FROM t_enum;
7.时间类型
类型 | 格式 |
Date
|
年
-
月
-
日
|
Datetime
|
年
-
月
-
日 时
:
分
:
秒
|
Datetime64 |
年
-
月
-
日 时
:
分
:
秒
.
亚秒
|
8.数组
类型 | 描述 |
Array(T)
|
由
T
类型元素组成的数组
|
T 可以是任意类型,包含数组类型。 但不推荐使用多维数组,
ClickHouse
对多维数组
的支持有限。
创建数组的方式(1):
SELECT array(1, 2) AS x, toTypeName(x) ;
创建数据的方式(2):
select [1,2] as x ,toTypeName(x);