ClickHouse中SQL使用

1、创建数据库

语法:CREATE DATABASE [IF NOT EXISTS] db_name

如果数据库db_name已经存在,则不会创建新的db_name数据库。

2、创建表

语法:CREATE TABLE t1(id UInt16,name String) ENGINE=TinyLog

例如:create table t1(id UInt8,name String,address String)engine=MergeTree order by id

3、插入数据

语法:INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), …

例如:insert into t1 (id,name,address) values(1,‘aa’,‘addr1’),(2,‘bb’,‘addr2’)

4、查看表结构DESCRIBLE

语法:DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]

例如:desc t1

5、删除表

语法:DROP [TEMPORARY] TABLE [IF

EXISTS] [db.]name [ON CLUSTER cluster]

例如:drop table t2

6、查询表

SELECT [DISTINCT] expr_list
[FROM [db.]table | (subquery) | table_function] [FINAL]
[SAMPLE sample_coeff]
[ARRAY JOIN …]
[GLOBAL] ANY|ALL INNER|LEFT JOIN (subquery)|table USING columns_list
[PREWHERE expr]
[WHERE expr]
[GROUP BY expr_list] [WITH TOTALS]
[HAVING expr]
[ORDER BY expr_list]
[LIMIT [n, ]m]
[UNION ALL …]
[INTO OUTFILE filename]
[FORMAT format]
[LIMIT n BY columns]

7、ARRAY JOIN

查询只能指定单个数组连接子句
ARRAY本质上和INNER JOIN 一样

8、JOIN
INNER or LEFT:同mysql

ANY or ALL:如果指定了ANY,那么只有第一个找到的行被连接,如果指定了ALL,那么所有符合的行都被连接

GLOBAL … JOIN:全局查询,首先,请求者服务器运行一个子查询来计算正确的表。这个临时表被传递给每个远程服务器,并使用传输的临时数据在它们上运行查询,请谨慎使用GLOBAL … JOIN

后续还需要完善--------


clickhouse中文sql文档地址:clickhouse中文sql文档

猜你喜欢

转载自blog.csdn.net/forget_fly/article/details/113771993