1、数据类型-枚举类实现
#打开客户端连接工具(-m:允许多行输入)
clickhouse-click -m
#创建表(枚举类的表)
CREATE TABLE t_enum ( x Enum8( 'hello'=1, 'world' = 2 ) ) ENGINE TinyLog;
#插入数据(多行插入)
insert into t_enum values('hello'),('world');
#查询
select * from t_enum;
#查询枚举类字符串对应的值
select cast(x,'Int8') from t_enum;
#根据code值进行插入
insert into t_enum values(1);
#根据条件查询每个具体的值
select * from t_enum where x='hello';
2、数据类型-时间类型
Date接受年-月-日的字符串类型: 2022-05-23
Datetime接受年-月-日 时:分:秒的字符串:2022-05-23 22:10:11
Datetime64接受年-月-日 时:分:秒.亚秒的字符串:2022-05-23 22:10:11.66
3、数据类型-数组:Array(T) T可以是任意类型,包含数组类型,但不建议使用多维数组,clickhouse对多维数组的支持有限。不能在MergeTree表中存储多维数组
#创建数组方式
select array(1,2) as x ,toTypeName(x);
效果等价
select [1,2] as x ,toTypeName(x);
4、数据类型-Nuallable(空值)
#创建可为null的空值表
CREATE TABLE t_null(x Int8, y Nullable(Int8)) ENGINE TinyLog;
#表中插入空值
INSERT INTO t_null VALUES (1, NULL), (2, 3);
#进行计算
SELECT x + y FROM t_null;
使用
Nullable
几乎总是对性能产生负面影响,在设计数据库时需注意
如何避免null值:数字类型可传无意义数值:-1
字符串类型可以传空字符串
4 、字符型
5、Decimal型
7、布尔型
8、浮点型
9、整型
以上几种比较简单的操作,不一一介绍,具体参考官方api文档:数据类型