ClickHouse的SQL基础语法

这篇博客介绍了ClickHouse的SQL基础,包括常用的SQL命令,如select查询、insert into、alter语法。重点讲解了select查询的语法,如DISTINCT、FROM子句、SAMPLE、ARRAY JOIN、JOIN、WHERE、GROUP BY、LIMIT等,以及数据插入和ALTER表的操作。强调了在处理大数据时的内存管理和性能优化策略。
摘要由CSDN通过智能技术生成

1 常用的SQL命令

作用 SQL
列出所有数据库 show databases;
进入某一个数据库 use dbName;
列出数据库中所有的表 show tables;
创建数据库 create database [if not exists] dbName;
删除数据库 drop database dbName;
创建表 create [temporary] table [if not exists] tableName [ON CLUSTER cluster] ( fieldName dataType ) engine = EngineName(parameters);
清空表 truncate table tableName;
删除表 drop table tableName;
创建视图 create view view_name as select …
创建物化视图 create [MATERIALIZED] view [if not exists] [db.]tableName [to [db.]name] [engine=engine] [populate] as select …

2 select查询语法

ClickHouse中完整select的查询语法如下(除了SELECT关键字和expr_list以外,中括号中的字句都是可选的):

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]

如果查询中不包含DISTINCT,GROUP BY,ORDER BY子句以及IN和JOIN子查询,那它将仅使用O(1)数量的内存来完全流式的处理查询,否则这个查询将消耗大量的内存,除非你指定了这些系统配置:max_memory_usage, max_rows_to_group_by, max_rows_to_sort, max_rows_in_distinct, max_bytes_in_distinct, max_rows_in_set, max_bytes_in_set, max_rows_in_join, max_bytes_in_join, max_bytes_before_external_sort, max_bytes_before_external_group_by。它们规定了可以使用外部排序(将临时表存储到磁盘中)以及外部聚合,目前系统不存在关于Join的配置。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值