关键字
本文介绍 TiDB 的关键字,对保留字和非保留字作出区分,并汇总所有的关键字以供查询使用。
关键字是 SQL 语句中具有特殊含义的单词,例如 SELECT,UPDATE,DELETE 等等。它们之中有的能够直接作为标识符,被称为非保留关键字(简称非保留字),但有需要经过特殊处理才能作为标识符的字,被称为保留关键字(简称保留字)。
对于保留字,必须使用反引号包裹,才能作为标识符被使用。例如:
CREATE TABLE select (a INT);
ERROR 1105 (HY000): line 0 column 19 near " (a INT)" (total length 27)
CREATE TABLE `select` (a INT);
Query OK, 0 rows affected (0.09 sec)
而非保留字则不需要反引号也能直接作为标识符。例如 BEGIN 和 END 是非保留字,以下语句能够正常执行:
CREATE TABLE `select` (BEGIN int, END int);
Query OK, 0 rows affected (0.09 sec)
有一种特殊情况,如果使用了限定符 .,那么也不需要用反引号:
CREATE TABLE test.select (BEGIN int, END int);
Query OK, 0 rows affected (0.08 sec)
下表列出了 TiDB 中所有的关键字。其中保留字用 (R) 来标识。窗口函数的保留字用 (R-Window) 来标识:
- ACCOUNT
 - ACTION
 - ADD (R)
 - ADMIN (R)
 - ADVISE
 - AFTER
 - AGAINST
 - AGO
 - ALGORITHM
 - ALL (R)
 - ALTER (R)
 - ALWAYS
 - ANALYZE (R)
 - AND (R)
 - ANY
 - AS (R)
 - ASC (R)
 - ASCII
 - AUTO_ID_CACHE
 - AUTO_INCREMENT
 - AUTO_RANDOM
 - AUTO_RANDOM_BASE
 - AVG
 - AVG_ROW_LENGTH
 
- BACKEND
 - BACKUP
 - BACKUPS
 - BEGIN
 - BETWEEN (R)
 - BIGINT (R)
 - BINARY (R)
 - BINDING
 - BINDINGS
 - BINLOG
 - BIT
 - BLOB (R)
 - BLOCK
 - BOOL
 - BOOLEAN
 - BOTH (R)
 - BTREE
 - BUCKETS (R)
 - BUILTINS (R)
 - BY (R)
 - BYTE
 
- CACHE
 - CANCEL (R)
 - CAPTURE
 - CASCADE (R)
 - CASCADED
 - CASE (R)
 - CHAIN
 - CHANGE (R)
 - CHAR (R)
 - CHARACTER (R)
 - CHARSET
 - CHECK (R)
 - CHECKPOINT
 - CHECKSUM
 - CIPHER
 - CLEANUP
 - CLIENT
 - CMSKETCH (R)
 - COALESCE
 - COLLATE (R)
 - COLLATION
 - COLUMN (R)
 - COLUMNS
 - COLUMN_FORMAT
 - COMMENT
 - COMMIT
 - COMMITTED
 - COMPACT
 - COMPRESSED
 - COMPRESSION
 - CONCURRENCY
 - CONFIG
 - CONNECTION
 - CONSISTENT
 - CONSTRAINT (R)
 - CONTEXT
 - CONVERT (R)
 - CPU
 - CREATE (R)
 - CROSS (R)
 - CSV_BACKSLASH_ESCAPE
 - CSV_DELIMITER
 - CSV_HEADER
 - CSV_NOT_NULL
 - CSV_NULL
 - CSV_SEPARATOR
 - CSV_TRIM_LAST_SEPARATORS
 - CUME_DIST (R-Window)
 - CURRENT
 - CURRENT_DATE (R)
 - CURRENT_ROLE (R)
 - CURRENT_TIME (R)
 - CURRENT_TIMESTAMP (R)
 - CURRENT_USER (R)
 - CYCLE
 
- DATA
 - DATABASE (R)
 - DATABASES (R)
 - DATE
 - DATETIME
 - DAY
 - DAY_HOUR (R)
 - DAY_MICROSECOND (R)
 - DAY_MINUTE (R)
 - DAY_SECOND (R)
 - DDL (R)
 - DEALLOCATE
 - DECIMAL (R)
 - DEFAULT (R)
 - DEFINER
 - DELAYED (R)
 - DELAY_KEY_WRITE
 - DELETE (R)
 - DENSE_RANK (R-Window)
 - DEPTH (R)
 - DESC (R)
 - DESCRIBE (R)
 - DIRECTORY
 - DISABLE
 - DISCARD
 - DISK
 - DISTINCT (R)
 - DISTINCTROW (R)
 - DIV (R)
 - DO
 - DOUBLE (R)
 - DRAINER (R)
 - DROP (R)
 - DUAL (R)
 - DUPLICATE
 - DYNAMIC
 
- ELSE (R)
 - ENABLE
 - ENCLOSED (R)
 - ENCRYPTION
 - END
 - ENFORCED
 - ENGINE
 - ENGINES
 - ENUM
 - ERROR
 - ERRORS
 - ESCAPE
 - ESCAPED (R)
 - EVENT
 - EVENTS
 - EVOLVE
 - EXCEPT (R)
 - EXCHANGE
 - EXCLUSIVE
 - EXECUTE
 - EXISTS (R)
 - EXPANSION
 - EXPIRE
 - EXPLAIN (R)
 - EXTENDED
 
- FALSE (R)
 - FAULTS
 - FIELDS
 - FILE
 - FIRST
 - FIRST_VALUE (R-Window)
 - FIXED
 - FLOAT (R)
 - FLUSH
 - FOLLOWING
 - FOR (R)
 - FORCE (R)
 - FOREIGN (R)
 - FORMAT
 - FROM (R)
 - FULL
 - FULLTEXT (R)
 - FUNCTION
 
- GENERAL
 - GENERATED (R)
 - GLOBAL
 - GRANT (R)
 - GRANTS
 - GROUP (R)
 - GROUPS (R-Window)
 
- HASH
 - HAVING (R)
 - HIGH_PRIORITY (R)
 - HISTORY
 - HOSTS
 - HOUR
 - HOUR_MICROSECOND (R)
 - HOUR_MINUTE (R)
 - HOUR_SECOND (R)
 
- IDENTIFIED
 - IF (R)
 - IGNORE (R)
 - IMPORT
 - IMPORTS
 - IN (R)
 - INCREMENT
 - INCREMENTAL
 - INDEX (R)
 - INDEXES
 - INFILE (R)
 - INNER (R)
 - INSERT (R)
 - INSERT_METHOD
 - INSTANCE
 - INT (R)
 - INT1 (R)
 - INT2 (R)
 - INT3 (R)
 - INT4 (R)
 - INT8 (R)
 - INTEGER (R)
 - INTERVAL (R)
 - INTO (R)
 - INVISIBLE
 - INVOKER
 - IO
 - IPC
 - IS (R)
 - ISOLATION
 - ISSUER
 
- JOB (R)
 - JOBS (R)
 - JOIN (R)
 - JSON
 
- KEY (R)
 - KEYS (R)
 - KEY_BLOCK_SIZE
 - KILL (R)
 
- LABELS
 - LAG (R-Window)
 - LANGUAGE
 - LAST
 - LASTVAL
 - LAST_BACKUP
 - LAST_VALUE (R-Window)
 - LEAD (R-Window)
 - LEADING (R)
 - LEFT (R)
 - LESS
 - LEVEL
 - LIKE (R)
 - LIMIT (R)
 - LINEAR (R)
 - LINES (R)
 - LIST
 - LOAD (R)
 - LOCAL
 - LOCALTIME (R)
 - LOCALTIMESTAMP (R)
 - LOCATION
 - LOCK (R)
 - LOGS
 - LONG (R)
 - LONGBLOB (R)
 - LONGTEXT (R)
 - LOW_PRIORITY (R)
 
- MASTER
 - MATCH (R)
 - MAXVALUE (R)
 - MAX_CONNECTIONS_PER_HOUR
 - MAX_IDXNUM
 - MAX_MINUTES
 - MAX_QUERIES_PER_HOUR
 - MAX_ROWS
 - MAX_UPDATES_PER_HOUR
 - MAX_USER_CONNECTIONS
 - MB
 - MEDIUMBLOB (R)
 - MEDIUMINT (R)
 - MEDIUMTEXT (R)
 - MEMORY
 - MERGE
 - MICROSECOND
 - MINUTE
 - MINUTE_MICROSECOND (R)
 - MINUTE_SECOND (R)
 - MINVALUE
 - MIN_ROWS
 - MOD (R)
 - MODE
 - MODIFY
 - MONTH
 
- NAMES
 - NATIONAL
 - NATURAL (R)
 - NCHAR
 - NEVER
 - NEXT
 - NEXTVAL
 - NO
 - NOCACHE
 - NOCYCLE
 - NODEGROUP
 - NODE_ID (R)
 - NODE_STATE (R)
 - NOMAXVALUE
 - NOMINVALUE
 - NONE
 - NOT (R)
 - NOWAIT
 - NO_WRITE_TO_BINLOG (R)
 - NTH_VALUE (R-Window)
 - NTILE (R-Window)
 - NULL (R)
 - NULLS
 - NUMERIC (R)
 - NVARCHAR
 
- OFFSET
 - ON (R)
 - ONLINE
 - ONLY
 - ON_DUPLICATE
 - OPEN
 - OPTIMISTIC (R)
 - OPTIMIZE (R)
 - OPTION (R)
 - OPTIONALLY (R)
 - OR (R)
 - ORDER (R)
 - OUTER (R)
 - OUTFILE (R)
 - OVER (R-Window)
 
- PACK_KEYS
 - PAGE
 - PARSER
 - PARTIAL
 - PARTITION (R)
 - PARTITIONING
 - PARTITIONS
 - PASSWORD
 - PERCENT_RANK (R-Window)
 - PER_DB
 - PER_TABLE
 - PESSIMISTIC (R)
 - PLUGINS
 - PRECEDING
 - PRECISION (R)
 - PREPARE
 - PRE_SPLIT_REGIONS
 - PRIMARY (R)
 - PRIVILEGES
 - PROCEDURE (R)
 - PROCESS
 - PROCESSLIST
 - PROFILE
 - PROFILES
 - PUMP (R)
 
- QUARTER
 - QUERIES
 - QUERY
 - QUICK
 
- RANGE (R)
 - RANK (R-Window)
 - RATE_LIMIT
 - READ (R)
 - REAL (R)
 - REBUILD
 - RECOVER
 - REDUNDANT
 - REFERENCES (R)
 - REGEXP (R)
 - REGION (R)
 - REGIONS (R)
 - RELEASE (R)
 - RELOAD
 - REMOVE
 - RENAME (R)
 - REORGANIZE
 - REPAIR
 - REPEAT (R)
 - REPEATABLE
 - REPLACE (R)
 - REPLICA
 - REPLICATION
 - REQUIRE (R)
 - RESPECT
 - RESTORE
 - RESTORES
 - RESTRICT (R)
 - REVERSE
 - REVOKE (R)
 - RIGHT (R)
 - RLIKE (R)
 - ROLE
 - ROLLBACK
 - ROUTINE
 - ROW (R)
 - ROWS (R-Window)
 - ROW_COUNT
 - ROW_FORMAT
 - ROW_NUMBER (R-Window)
 - RTREE
 
- SAMPLES (R)
 - SECOND
 - SECONDARY_ENGINE
 - SECONDARY_LOAD
 - SECONDARY_UNLOAD
 - SECOND_MICROSECOND (R)
 - SECURITY
 - SELECT (R)
 - SEND_CREDENTIALS_TO_TIKV
 - SEPARATOR
 - SEQUENCE
 - SERIAL
 - SERIALIZABLE
 - SESSION
 - SET (R)
 - SETVAL
 - SHARD_ROW_ID_BITS
 - SHARE
 - SHARED
 - SHOW (R)
 - SHUTDOWN
 - SIGNED
 - SIMPLE
 - SKIP_SCHEMA_FILES
 - SLAVE
 - SLOW
 - SMALLINT (R)
 - SNAPSHOT
 - SOME
 - SOURCE
 - SPATIAL (R)
 - SPLIT (R)
 - SQL (R)
 - SQL_BIG_RESULT (R)
 - SQL_BUFFER_RESULT
 - SQL_CACHE
 - SQL_CALC_FOUND_ROWS (R)
 - SQL_NO_CACHE
 - SQL_SMALL_RESULT (R)
 - SQL_TSI_DAY
 - SQL_TSI_HOUR
 - SQL_TSI_MINUTE
 - SQL_TSI_MONTH
 - SQL_TSI_QUARTER
 - SQL_TSI_SECOND
 - SQL_TSI_WEEK
 - SQL_TSI_YEAR
 - SSL (R)
 - START
 - STARTING (R)
 - STATS (R)
 - STATS_AUTO_RECALC
 - STATS_BUCKETS (R)
 - STATS_HEALTHY (R)
 - STATS_HISTOGRAMS (R)
 - STATS_META (R)
 - STATS_PERSISTENT
 - STATS_SAMPLE_PAGES
 - STATUS
 - STORAGE
 - STORED (R)
 - STRAIGHT_JOIN (R)
 - STRICT_FORMAT
 - SUBJECT
 - SUBPARTITION
 - SUBPARTITIONS
 - SUPER
 - SWAPS
 - SWITCHES
 - SYSTEM_TIME
 
- TABLE (R)
 - TABLES
 - TABLESPACE
 - TABLE_CHECKSUM
 - TEMPORARY
 - TEMPTABLE
 - TERMINATED (R)
 - TEXT
 - THAN
 - THEN (R)
 - TIDB (R)
 - TIFLASH (R)
 - TIKV_IMPORTER
 - TIME
 - TIMESTAMP
 - TINYBLOB (R)
 - TINYINT (R)
 - TINYTEXT (R)
 - TO (R)
 - TOPN (R)
 - TRACE
 - TRADITIONAL
 - TRAILING (R)
 - TRANSACTION
 - TRIGGER (R)
 - TRIGGERS
 - TRUE (R)
 - TRUNCATE
 - TYPE
 
- UNBOUNDED
 - UNCOMMITTED
 - UNDEFINED
 - UNICODE
 - UNION (R)
 - UNIQUE (R)
 - UNKNOWN
 - UNLOCK (R)
 - UNSIGNED (R)
 - UPDATE (R)
 - USAGE (R)
 - USE (R)
 - USER
 - USING (R)
 - UTC_DATE (R)
 - UTC_TIME (R)
 - UTC_TIMESTAMP (R)
 
- VALIDATION
 - VALUE
 - VALUES (R)
 - VARBINARY (R)
 - VARCHAR (R)
 - VARCHARACTER (R)
 - VARIABLES
 - VARYING (R)
 - VIEW
 - VIRTUAL (R)
 - VISIBLE
 
- WARNINGS
 - WEEK
 - WEIGHT_STRING
 - WHEN (R)
 - WHERE (R)
 - WIDTH (R)
 - WINDOW (R-Window)
 - WITH (R)
 - WITHOUT
 - WRITE (R)
 
- X509
 - XOR (R)
 
- YEAR
 - YEAR_MONTH (R)
 
- ZEROFILL (R)