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 ⽇期类型
Date yyyy-MM-dd格式
DateTime yyyy-MM-dd HH:mm:ss格式
⼆复杂数据类型
1 数组
Array(类型)
create table ArrayTest(arr Array(String))engine=TinyLog;
insert into ArrayTest values(['a','b']);decimal是整数数据类型
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);
还有⼀些很少很少⽤的就不说了

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。