SQL语句由两个基本组件组成:
UNIQUE
、CONSTRAINT
等关键字构成SQL的词汇表,并且能够在语句中拥有特定的含义。Hubble支持的每个SQL关键字包括以下四个方面之一:
保留关键字具有固定的含义,通常不允许用作标识符。所有其他类型的关键字都被认为是非保留的;它们在某些上下文中具有特殊含义,并且可以在其他上下文中用作标识符。
多数询问关键字的使用者希望从以下方面了解更多关于它们的信息:
标识符最常用作数据库、表或列等对象的名称,因此,术语“名称”和“标识符”经常互换使用。
在我们的SQL语法中,所有接受定义的值需要满足以下条件:
(_)
开头。后续字符可以是字母、下划线、数字 (0-9) 或美元符号($)
。name
接受 Unreserved
或Column Name
关键字(即便有的关键字被元素的语法所接受,我们也建议避免使用任何关键字)。要绕过这些规则中的任何一个,需用双引号将标识符括起来。您还可以使用双引号来保持数据库、表、视图和列名中的大小写敏感性。但是,对此类标识符的所有引用都必须还包括双引号。
对于保留字,必须使用引号包裹,才能作为标识符被使用。例如:
create table insert (n int);
invalid syntax: statement ignored: at or near "insert": syntax error
正确的引用方式:
create table "insert" (n int);
而非保留字则不需要引号也能直接作为标识符,例如BEGIN
是非保留字:
create table "select" (begin string);
特殊情况下,如果应用了限定符.
,那么也可以不用引号:
create table test.select (close int);
下表列出了Hubble中关键字,其中保留字用(A)来标识,窗口函数的保留字用 (A-Window)来标识。
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y