ClickHouse Syntax 句法

系统中有两种类型的解析器:完整的SQL解析器(递归下行解析器)和数据格式解析器(快速流解析器)。在所有情况下,除了INSERT查询之外,只使用完整的SQL解析器。插入查询使用两个解析器


Spaces

空格,在语法结构之间可能有许多空间符号(包括查询的开始和结束)。空间符号包括空格、制表符、换行符、CR和表单提要。


Comments

注释:支持SQL-style和c样式的注释。sql风格的注释:从-到这一行的末尾。后面的空间可以省略。c风格的评论:从/到/。这些注释可以是多行的。这里也不需要空格


Keywords

关键字(例如SELECT)不是区分大小写的。与标准SQL不同的是,其他所有(列名称、函数等等)都是区分大小写的。关键字不是保留的(它们只是在相应的上下文中被解析为关键字)。


Identifiers

标识符:标识符(列名、函数和数据类型)可以引用或不引用。非引用的标识符以一个拉丁字母或下划线开始,并继续使用拉丁字母、下划线或数字。换句话说,它们必须匹配regex a-za-z-za-za-z$。例子:x,_1,X_y__Z123_。

引用的标识符被放置在反向引号'id'(与MySQL相同),并且可以指示任何一组字节(非空)。此外,在这种标识符中,符号(例如,反向引号)可以是反向转义。转义规则与字符串相同


Literals

文字:有数字文字、字符串文字和复合文字。


Numeric literals

数据类型: 相应的值将拥有该值所对应的最小类型。例如,1被解析为UInt8,但256被解析为UInt16。要了解更多信息,请参阅“数据类型”


String literals

字符的转义,一般是'和\


Compound literals

复合: 构建支持数组:1、2、3和元组(1:“Hello,world!”',2). .实际上,这些不是文字,而是数组创建操作符和元组创建操作符的表达式。要了解更多信息,请参阅“操作人员”一节。一个数组必须包含至少一个项目,而一个元组必须至少有两个项目。元组在SELECT查询的IN子句中有特殊用途。元组可以作为查询的结果获得,但是不能将它们保存到数据库中(除了内存类型表之外)。


Functions

函数的书写方式类似于一个标识符,在括号中有一个参数列表(可能是空的)。与标准的SQL相比,括号是必需的,即使是空的参数列表。例子:现在()。有常规的和聚合的函数(请参阅“聚合函数”一节)。有些聚合函数可以包含两个括号中的参数列表。例如:quantile(0.9)(x)。这些聚合函数被称为“参数”函数,第一个列表中的参数称为“parameters”。没有参数的聚合函数的语法与普通函数是一样的。


Operators

运算符:在查询解析过程中,操作符被转换成相应的函数,并将它们的优先级和结合性考虑在内。例如表达式1 + 2 * 3 + 4 会被解析为 plus(plus(1, multiply(2, 3)), 4)


Data types and database table engines

数据类型和数据库表引擎


Synonyms

SELECT (1 AS n) + 2, n
在SELECT查询中,表达式可以使用AS关键字指定同义词。任何表达式都放在左边。同义词的标识符名称被放置在AS的右侧。


Asterisk *

在select 里,*可以替代表达式






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值