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文档