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文档:数据类型