ClickHouse SQL语法
1、CREATE
1 CREATE DATABASE
用于创建指定名称的数据库,语法如下:

2、如果查询中存在IF NOT EXISTS,则当数据库已经存在时,该查询不会返回任何错误。

3、CREATE TABLE
对于创建表,语法如下:

4、DEFAULT expr – 默认值,用法与SQL类似。
MATERIALIZED expr – 物化表达式,被该表达式指定的列不能被INSERT,因为它总是被计算出来的。 对于INSERT而言,不需要考虑这些列。 另外,在SELECT查询中如果包含星号,此列不会被查询。
ALIAS expr – 别名。
有三种方式创建表:
1)直接创建

5、创建一个与其他表具有相同结构的表

6、可以对其指定不同的表引擎声明。如果没有表引擎声明,则创建的表将与db2.name2使用相同的表引擎。

7、使用指定的引擎创建一个与SELECT子句的结果具有相同结构的表,并使用SELECT子句的结果填充它。
语法:

8、实例:

9、INSERT INTO
主要用于向表中添加数据,基本格式如下:

10、实例:

11、还可以使用select来写入数据:

12、实例:

13、ClickHouse不支持的修改数据的查询:UPDATE, DELETE, REPLACE, MERGE, UPSERT, INSERT UPDATE。
3 ALTER
ALTER只支持MergeTree系列,Merge和Distributed引擎的表,基本语法:

14、参数解析:
ADD COLUMN – 向表中添加新列
DROP COLUMN – 在表中删除列
MODIFY COLUMN – 更改列的类型
案例演示:
1)创建一个MergerTree引擎的表

15、向表中插入一些值

16、在末尾添加一个新列age

17、更改age列的类型

18、删除刚才创建的age列

19、DESCRIBE TABLE
查看表结构

20、CHECK TABLE
检查表中的数据是否损坏,他会返回两种结果:
0 – 数据已损坏
1 – 数据完整
该命令只支持Log,TinyLog和StripeLog引擎。