本文介绍 OpenMLDB的关键字,并对保留关键字和非保留关键字作出区分,并汇总所有的关键字以供查询使用。
关键字是 SQL 语句中具有特殊含义的单词,例如 SELECT
,UPDATE
,DELETE
等等。关键字都是大小写不敏感的。
关键字包括保留字和非保留字:
- 非保留关键字:能够直接作为标识符,被称为非保留关键字(简称非保留字)。
- 保留关键字:需要经过特殊处理——使用``符合括起才能作为标识符的字,被称为保留关键字(简称保留字)。
对于保留字,必须使用反引号``包裹,才能作为标识符被使用。例如:JOIN是OpenMLDB定义的保留字,以下语句无法成功运行:
CREATE TABLE JOIN (a INT);
Syntax error: Unexpected keyword JOIN [at 1:14]
CREATE TABLE JOIN (a INT);
^
需要使用反引号包裹成`JOIN`
,JOIN才可以作为标识符:
CREATE TABLE `JOIN` (a INT);
SUCCEED: Create successfully
对于而非保留字,则不需要特别处理也可以作为标识符。例如:DATA是非保留字,那么以下语句可以成功运行:
CREATE TABLE DATA (a INT);
SUCCEED: Create successfully
下表列出了 OpenMLDB 中所有的关键字。其中保留字用 (R)
来标识。
A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
- ABORT
- ACCESS
- ACTION
- ADD
- AGGREGATE
- ALL(R)
- ALTER
- ANALYZE
- AND(R)
- ANONYMIZATION
- ANY(R)
- ARRAY(R)
- AS(R)
- ASC(R)
- ASSERT
- ASSERT_ROWS_MODIFIED(R)
- AT(R)
- BATCH
- BEGIN
- BETWEEN(R)
- BIGDECIMAL
- BIGNUMERIC
- BREAK
- BY(R)
- CALL
- CASCADE
- CASE(R)
- CAST(R)
- CHECK
- CLAMPED
- CLUSTER
- COLLATE(R)
- COLUMN
- COLUMNS
- COMMIT
- CONFIG(R)
- CONNECTION
- CONST
- CONSTANT
- CONSTRAINT
- CONTAINS(R)
- CONTINUE
- CLONE
- CREATE(R)
- CROSS(R)
- CUBE(R)
- CURRENT(R)
- CURRENT_TIME
- DATA
- DATABASE
- DATE
- DATETIME
- DECIMAL
- DECLARE
- DEFAULT(R)
- DEFINE(R)
- DEFINER
- DELETE
- DEPLOY
- DEPLOYMENT
- DESC(R)
- DESCRIBE
- DESCRIPTOR
- DETERMINISTIC
- DISTINCT(R)
- DIV(R)
- DO
- DROP
- ELSE(R)
- ELSEIF
- END(R)
- ENFORCED
- ENUM(R)
- ERROR
- ESCAPE(R)
- EXCEPT(R)
- EXCEPTION
- EXCLUDE(R)
- EXECUTE
- EXISTS(R)
- EXPLAIN
- EXPORT
- EXTERNAL
- EXTRACT(R)
- FALSE(R)
- FETCH(R)
- FILTER
- FILTER_FIELDS
- FILL
- FIRST
- FOLLOWING(R)
- FOR(R)
- FOREIGN
- FORMAT
- FROM(R)
- FULL(R)
- FUNCTION
- GENERATED
- GLOBAL
- GRANT
- GROUP(R)
- GROUP_ROWS
- GROUPING(R)
- GROUPS(R)
- HASH(R)
- HAVING(R)
- HIDDEN
- IF(R)
- IGNORE(R)
- IMMEDIATE
- IMMUTABLE
- IMPORT
- IN(R)
- INCLUDE
- INOUT
- INDEX(R)
- INFILE
- INNER(R)
- INSERT
- INSTANCE_NOT_IN_WINDOW(R)
- INTERSECT(R)
- INTERVAL(R)
- ITERATE
- INTO(R)
- INVOKER
- IS(R)
- ISOLATION
- JOB
- JOIN(R)
- JSON
- KEY
- LANGUAGE
- LAST(R)
- LATERAL(R)
- LEAVE
- LEFT(R)
- LEVEL
- LIKE(R)
- ILIKE(R)
- LIMIT(R)
- LOAD
- LOOKUP(R)
- LOOP
- MATCH
- MATCHED
- MATERIALIZED
- MAX
- MAXSIZE
- MESSAGE
- MIN
- MOD(R)
- MODEL
- MODULE
- MERGE(R)
- NATURAL(R)
- NEW(R)
- NO(R)
- NOT(R)
- NULL(R)
- NULLS(R)
- NUMERIC
- OF(R)
- OFFSET
- ON(R)
- ONLY
- OPEN(R)
- OPTIONS
- OR(R)
- ORDER(R)
- OUT
- OUTFILE
- OUTER(R)
- OVER(R)
- PARTITION(R)
- PERCENT
- PIVOT
- UNPIVOT
- POLICIES
- POLICY
- PRIMARY
- PRECEDING(R)
- PROCEDURE
- PRIVATE
- PRIVILEGES
- PROTO(R)
- PUBLIC
- QUALIFY
- RAISE
- RANGE(R)
- READ
- RECURSIVE(R)
- REFERENCES
- RENAME
- REPEAT
- REPEATABLE
- REPLACE
- REPLACE_FIELDS
- RESPECT(R)
- RESTRICT
- RETURN
- RETURNS
- REVOKE
- RIGHT(R)
- ROLLBACK
- ROLLUP(R)
- ROW
- ROWS(R)
- ROWS_RANGE(R)
- RUN
- SAFE_CAST
- SCHEMA
- SEARCH
- SECURITY
- SELECT(R)
- SESSION
- SET(R)
- SHOW
- SIMPLE
- SOME(R)
- SOURCE
- STORING
- STOP
- SQL
- STABLE
- START
- STATUS
- STORED
- STRUCT(R)
- SYSTEM
- SYSTEM_TIME
- TABLE
- TABLESAMPLE(R)
- TARGET
- TEMP
- TEMPORARY
- THEN(R)
- TIME
- TIMESTAMP
- TO(R)
- TRANSACTION
- TRANSFORM
- TREAT(R)
- TRUE(R)
- TRUNCATE
- TYPE
- UNBOUNDED(R)
- UNION(R)
- UNNEST(R)
- UNIQUE
- UNTIL
- UPDATE
- USE
- USING(R)
- VALUE
- VALUES
- VARIABLES
- VOLATILE
- VIEW
- VIEWS
- WEIGHT
- WHEN(R)
- WHERE(R)
- WHILE
- WINDOW(R)
- WITH(R)
- WITHIN(R)
- WRITE
- XOR(R)
- ZONE