关键字和标识符

SQL语句由两个基本组件组成:

  • 关键字:在 SQL中具有特定含义的单词,如UNIQUECONSTRAINT
  • 标识符:数据库和函数等事物的名称

关键字

关键字构成SQL的词汇表,并且能够在语句中拥有特定的含义。Hubble支持的每个SQL关键字包括以下四个方面之一:

  • 保留关键字
  • 键入函数名称关键字
  • 列名关键字
  • 未保留的关键字

保留关键字具有固定的含义,通常不允许用作标识符。所有其他类型的关键字都被认为是非保留的;它们在某些上下文中具有特殊含义,并且可以在其他上下文中用作标识符。

关键字使用

多数询问关键字的使用者希望从以下方面了解更多关于它们的信息:

  • 对象的名称,在本页标识符中介绍
  • 语法,在我们的SQL语句和SQL语法页面中介绍

标识符

标识符最常用作数据库、表或列等对象的名称,因此,术语“名称”和“标识符”经常互换使用。

标识符规则

在我们的SQL语法中,所有接受定义的值需要满足以下条件:

  • 以 Unicode字母或下划线(_)开头。后续字符可以是字母、下划线、数字 (0-9) 或美元符号($)
  • 不与任何SQL关键字相同,除非该关键字被元素的语法所接受。例如,name接受 UnreservedColumn 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

  • ACTION
  • ADD(A)
  • ADMIN(A)
  • AGO
  • ALL(A)
  • ALTER(A)
  • ANALYZE(A)
  • AND(A)
  • ANY
  • ARRAY(A)
  • AS(A)
  • ASC(A)
  • ASCII
  • ATTRIBUTE
  • ATTRIBUTES
  • AVG

B

  • BACKUP
  • BACKUPS
  • BEGIN
  • BETWEEN(A)
  • BIGINT(A)
  • BIT
  • BLOB(A)
  • BOTH(A)
  • BUCKETS(A)
  • BY(A)
  • BYTE

C

  • CACHE
  • CALL(A)
  • CANCEL(A)
  • CAPTURE
  • CASCADE(A)
  • CASCADED
  • CASE(A)
  • CHANGE(A)
  • CHAR(A)
  • CHARACTER(A)
  • CHARSET
  • CHECK(A)
  • CLIENT
  • CLOSE
  • CLUSTER
  • COALESCE
  • COLUMN(A)
  • COLUMNS
  • COMMENT
  • COMMIT
  • COMMITTED
  • CONTEXT
  • CONTINUE(A)
  • CONVERT(A)
  • CPU
  • CREATE(A)
  • CURRENT
  • CURRENT_DATE(A)
  • CURRENT_ROLE(A)
  • CURRENT_TIME(A)
  • CURRENT_TIMESTAMP(A)
  • CURRENT_USER(A)
  • CURSOR(A)
  • CYCLE

D

  • DATA
  • DATABASE(A)
  • DATABASES(A)
  • DATE
  • DATETIME
  • DAY
  • DDL(A)
  • DECIMAL(A)
  • DECLARE
  • DEFAULT(A)
  • DEFINER
  • DELETE(A)
  • DENSE_RANK (A-Window)
  • DESC(A)
  • DIRECTORY
  • DISABLE
  • DIV(A)
  • DO
  • DOUBLE(A)
  • DROP(A)

E

  • ELSE(A)
  • ELSEIF(A)
  • ENABLE
  • ENABLED
  • END
  • ENUM
  • ERROR
  • ERRORS
  • EVENT
  • EVENTS
  • EXCEPT(A)
  • EXECUTE
  • EXISTS(A)
  • EXIT(A)
  • EXPLAIN(A)

F

  • FAULTS
  • FETCH(A)
  • FIELDS
  • FILE
  • FIRST
  • FLOAT(A)
  • FLUSH
  • FOR(A)
  • FORCE(A)
  • FOREIGN(A)
  • FORMAT
  • FOUND
  • FROM(A)
  • FULL
  • FUNCTION

G

  • GENERAL
  • GLOBAL
  • GRANT(A)
  • GRANTS
  • GROUP(A)
  • GROUPS (A-Window)

H

  • HASH
  • HAVING(A)
  • HELP
  • HISTORY
  • HOSTS
  • HOUR

I

  • IDENTIFIED
  • IF(A)
  • ILIKE(A)
  • IMPORT
  • IN(A)
  • INDEX(A)
  • INDEXES
  • INFILE(A)
  • INNER(A)
  • INOUT(A)
  • INSERT(A)
  • INSTANCE
  • INT(A)
  • INT2(A)
  • INT4(A)
  • INT8(A)
  • INTEGER(A)
  • INTERSECT(A)
  • INTERVAL(A)
  • INTO(A)
  • INVOKER
  • IO
  • IS(A)
  • ISOLATION
  • ISSUER

J

  • JOB(A)
  • JOBS(A)
  • JOIN(A)
  • JSON

K

  • KEY(A)
  • KEYS(A)

L

  • LAG (A-Window)
  • LAST
  • LAST_VALUE (A-Window)
  • LEAD (A-Window)
  • LEAVE(A)
  • LEFT(A)
  • LESS
  • LEVEL
  • LIKE(A)
  • LIMIT(A)
  • LIST
  • LOAD(A)
  • LOCAL
  • LOCATION
  • LOCK(A)
  • LOCKED
  • LOGS
  • LONG(A)

M

  • MASTER
  • MATCH(A)
  • MEMBER
  • MEMORY
  • MINUTE
  • MIN_ROWS
  • MOD(A)
  • MODE
  • MODIFY
  • MONTH

N

  • NAMES
  • NEVER
  • NEXT
  • NEXTVAL
  • NO
  • NODE_ID(A)
  • NONE
  • NOT(A)
  • NOWAIT
  • NULL(A)
  • NULLS

O

  • OF(A)
  • OFF
  • OFFSET
  • ON(A)
  • ONLINE
  • ONLY
  • OPEN
  • OPTIMIZE(A)
  • OPTION(A)
  • OR(A)
  • ORDER(A)
  • OUT(A)
  • OVER (A-Window)

P

  • PARTITION(A)
  • PARTITIONS
  • PASSWORD
  • PAUSE
  • PERCENT
  • PERCENT_RANK (A-Window)
  • PLUGINS
  • POINT
  • POLICY
  • PRIMARY(A)

Q

  • QUERY
  • QUICK

R

  • RANGE(A)
  • RANK (A-Window)
  • READ(A)
  • REAL(A)
  • REBUILD
  • RECOVER
  • REGEXP(A)
  • REGION(A)
  • REGIONS(A)
  • RELEASE(A)
  • RELOAD
  • REMOVE
  • RENAME(A)
  • REPAIR
  • REPEAT(A)
  • REPLACE(A)
  • REPLICA
  • REPLICAS
  • REPLICATION
  • RESOURCE
  • RESPECT
  • RESTART
  • RESTORE
  • RESUME
  • REUSE
  • REVERSE
  • REVOKE(A)
  • RIGHT(A)
  • RLIKE(A)
  • ROLE
  • ROLLBACK
  • ROUTINE
  • ROW(A)
  • ROW_COUNT
  • ROW_FORMAT
  • ROW_NUMBER (A-Window)
  • ROWS (A-Window)
  • RTREE

S

  • SAMPLES(A)
  • SAVEPOINT
  • SECOND
  • SELECT(A)
  • SEPARATOR
  • SEQUENCE
  • SERIAL
  • SERIALIZABLE
  • SESSION
  • SET(A)
  • SETVAL
  • SHARE
  • SHARED
  • SHOW(A)
  • SHUTDOWN
  • SIGNED
  • SIMPLE
  • SKIP
  • SLAVE
  • SLOW
  • SMALLINT(A)
  • SOME
  • SOURCE
  • SPATIAL(A)
  • SPLIT(A)
  • SQL(A)
  • SSL(A)
  • START
  • STATUS
  • STORAGE
  • SUBJECT
  • SUPER
  • SYSTEM

T

  • TABLE(A)
  • TABLES
  • TEMPORARY
  • TEXT
  • THAN
  • THEN(A)
  • TIME
  • TIMESTAMP
  • TINYBLOB(A)
  • TINYINT(A)
  • TINYTEXT(A)
  • TO(A)
  • TOPN(A)
  • TRACE
  • TRANSACTION
  • TRUE(A)
  • TRUNCATE
  • TTL
  • TYPE

U

  • UNICODE
  • UNION(A)
  • UNIQUE(A)
  • UNKNOWN
  • UNLOCK(A)
  • UNTIL(A)
  • UPDATE(A)
  • USAGE(A)
  • USE(A)
  • USER
  • USING(A)

V

  • VALUE
  • VALUES(A)
  • VARBINARY(A)
  • VARCHAR(A)
  • VARCHARACTER(A)
  • VARIABLES
  • VARYING(A)
  • VIEW

W

  • WAIT
  • WARNINGS
  • WEEK
  • WHEN(A)
  • WHERE(A)
  • WHILE(A)
  • WINDOW (A-Window)
  • WITH(A)
  • WITHOUT
  • WRITE(A)

Y

  • YEAR