ClickHouse SQL语法

2025-10-22 15:00:34

1、1 CREATE

1 CREATE DATABASE

用于创建指定名称的数据库,语法如下:

ClickHouse SQL语法

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

ClickHouse SQL语法

3、2 CREATE TABLE

对于创建表,语法如下:

ClickHouse SQL语法

4、DEFAULT expr – 默认值,用法与SQL类似。

MATERIALIZED expr – 物化表达式,被该表达式指定的列不能被INSERT,因为它总是被计算出来的。 对于INSERT而言,不需要考虑这些列。 另外,在SELECT查询中如果包含星号,此列不会被查询。

ALIAS expr – 别名。

有三种方式创建表:

1)直接创建

ClickHouse SQL语法

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

ClickHouse SQL语法

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

ClickHouse SQL语法

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

语法:

ClickHouse SQL语法

8、实例:

ClickHouse SQL语法

9、2 INSERT INTO

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

ClickHouse SQL语法

10、实例:

ClickHouse SQL语法

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

ClickHouse SQL语法

12、实例:

ClickHouse SQL语法

13、ClickHouse不支持的修改数据的查询:UPDATE, DELETE, REPLACE, MERGE, UPSERT, INSERT UPDATE。

3 ALTER

ALTER只支持MergeTree系列,Merge和Distributed引擎的表,基本语法:

ClickHouse SQL语法

14、参数解析:

ADD COLUMN – 向表中添加新列

DROP COLUMN – 在表中删除列

MODIFY COLUMN – 更改列的类型

案例演示:

1)创建一个MergerTree引擎的表

ClickHouse SQL语法

15、2)向表中插入一些值

ClickHouse SQL语法

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

ClickHouse SQL语法

17、4)更改age列的类型

ClickHouse SQL语法

18、5)删除刚才创建的age列

ClickHouse SQL语法

19、4 DESCRIBE TABLE

查看表结构

ClickHouse SQL语法

20、5 CHECK TABLE

检查表中的数据是否损坏,他会返回两种结果:

0 – 数据已损坏

1 – 数据完整

该命令只支持Log,TinyLog和StripeLog引擎。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢