Clickhouse数据类型

一基本数据类型

1整数类型:
Int8/Int16/Int32/Int64
分别对应mysql类型tinyint/smallint/int/bigint
取值范围:是-2的(Int后数字-1)的平方到2的(Int后数字的平方-1)-1,Int8对应-128~127
UInt8/UInt16/UInt32/UInt64
前面加U 例如 UInt8 代表全部是正数,
取值范围0到2的Int后面数字次方-1,如UInt8对应0-255
2 浮点类型:
Float32/Float64
分别对应mysql的float与double
Decimal(n,p)对应于mysql decimal(n,p)
但是有简写形式Decimal32(p),Decimal64(p),Decimal128(p),分别对应
Decimal(1~9,p),Decimal(10~18,p),Decimal(19~38,p)
3 字符串类型
String/FixedString/UUID
String不像mysql一样有大小限制,它可以表示成msyql varchar/text/clob/blob的合集
FixedString(n) 定长字符串,相当于char
4 日期类型
Dateyyyy-MM-dd格式
DateTime yyyy-MM-dd HH:mm:ss格式
DateTime64 精确到时间戳的毫秒

二 复杂数据类型

1 数组
Array(类型)

create table ArrayTest(arr Array(String))engine=TinyLog;  
insert into ArrayTest values(['a','b']);
insert into ArrayTest values(array('a','b','c'));
select * from ArrayTest

在这里插入图片描述

2 Tuple元组类型
Array中只能有一种数据类型,而Tuple可以是自己定义的多种类型
Tuple(类型1,类型2,类型3…)

create table tupleTest(tup Tuple(Int32,String,Decimal(2,1)))engine =TinyLog ;
insert into tupleTest values((1,'zhangsan',1.2));
select * from tupleTest;

在这里插入图片描述
3 枚举
Enum8(xxx)/Enum16(xxx)分别对应 [-128, 127],[-32768, 32767]
用法:

create table enumTest (e Enum8('hello' = 1, 'world' = 2))engine= TinyLog;
insert into enumTest values('world');
insert into enumTest values('aaa');

第二条sql会报错
枚举类型的排序会根据后面对应的int类型排.
4 嵌套类型
Nested(name1 type1,name2 type2…)
可以理解成Array(Array(type1),Array(type2)…)

create table nestedTest(n Nested(id Int32,name String))engine=TinyLog;
insert into nestedTest values([1,2],['zhangsan','lisi']);
insert into nestedTest values([3,4,5],['zhaoliu','tianqi']);

第二行报错,因为同一行中的两个字段id与name长度必须一样.
查询:

select n.id,n.name from nestedTest

在这里插入图片描述
5 Nullable(type)可为null的类型

create table nullTest(id Int32)engine =TinyLog;
insert into nullTest values(null);

会报错,不允许为null

 create table nullTest2(id Nullable(Int32))engine =TinyLog;
 insert into nullTest2 values(null);

还有一些很少很少用的就不说了

ClickHouse官网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值