Skip to content

适用虚谷数据库版本

v12.10.13



适用虚谷数据库版本

v12.10.13


关键字 ​

📄字数 7.1K
👁️阅读量 加载中...

一、概述 ​

在数据库中,关键字是SQL中用于表示特定的使用功能,有实际意义的词。为防止歧义,一般不推荐使用关键字作为对象名或集合名等。
根据系统要求,关键字分为保留字和非保留字。

1.1 保留字 ​

数据库内部强制不能使用的字。

例如 CREATE,在数据库的DDL语句中用于定义对象创建的操作,如果使用这个关键字作为表对象名,就会产生歧义,所以数据库一般会报错。

出于兼容性需求,某些保留字允许直接被用户使用;如果保留字确实需要被使用,可以通过添加双引号作为表名或列名等标识符。

提示

如果有关键字需要在业务中使用,并且无法增加双引号包裹关键字。
可以通过关键字过滤(KEYWORD_FILTER)功能实现关键字作为对象名使用。

sql
--使用允许作为表名的保留字作为表名
SQL> CREATE TABLE both(id int,name varchar);

--使用不允许作为表名的保留字作为表名
SQL> CREATE TABLE boverlaps(id int,name varchar);
Error: [E19132] 语法错误
	[E19260 L1 C13] 期待符号: syntax error, unexpected BOVERLAPS

--使用添加双引号且允许作为表名的保留字作为表名
SQL> CREATE TABLE "both"(id int,name varchar);

--使用添加双引号且不允许作为表名的保留字作为表名
SQL> CREATE TABLE "boverlaps"(id int,name varchar);

1.2 非保留字 ​

非保留字是作为将来数据库可能会被用到的功能预留。

sql
--使用允许作为表名的非保留字作为表名
SQL> CREATE TABLE call(id int,name varchar);

--使用不允许作为表名的非保留字作为表名
SQL> CREATE TABLE cast(id int,name varchar);
Error: [E19132] 语法错误
	[E19260 L1 C13] 期待符号: syntax error, unexpected CAST

二、关键字 ​

2.1 A ​

名称类别作为表名作为列名作为列别名
ABORT非保留××√
ABOVE保留×××
ABSOLUTE非保留√√√
ACCESS非保留√√√
ACCOUNT非保留√√√
ACTION非保留√√√
ADD非保留√√√
AFTER非保留√√√
AGGREGATE非保留√√√
ALL保留××√
ALL_ROWS非保留√√√
ALTER保留××√
ANALYSE非保留××√
ANALYZE保留××√
AND保留××√
ANY保留××√
AOVERLAPS保留×××
APPEND非保留√√√
ARCHIVELOG非保留√√√
ARE非保留√√√
ARRAY保留××√
AS保留××√
ASC保留××√
AT非保留√√√
AUDIT保留×××
AUDITOR非保留√√√
AUTHID非保留××√
AUTHORIZATION非保留√√√
AUTO非保留√√√
AUTO_INCREMENT非保留√√√

2.2 B ​

名称类别作为表名作为列名作为列别名
BACKUP非保留√√√
BACKWARD非保留√√√
BADFILE非保留√√√
BCONTAINS保留×××
BEFORE非保留√√√
BEGIN保留×××
BETWEEN保留××√
BINARY保留××√
BINTERSECTS保留×××
BIT保留××√
BLOCK非保留√√√
BLOCKS非保留√√√
BODY保留√√√
BOTH保留√×√
BOUND非保留√√√
BOVERLAPS保留×××
BREAK非保留√√√
BUFFER_POOL非保留√√√
BUILD非保留√√√
BULK保留×××
BWITHIN保留×××
BY保留√√√

2.3 C ​

名称类别作为表名作为列名作为列别名
CACHE非保留√√√
CALL非保留√√√
CASCADE保留×××
CASE保留√×√
CAST非保留××√
CATCH非保留√√√
CATEGORY非保留√√√
CHAIN非保留√√√
CHAR非保留××√
CHARACTER非保留××√
CHARACTERISTICS非保留√√√
CHECK保留××√
CHECKPOINT保留×××
CHOOSE非保留√√√
CHUNK非保留√√√
CLOSE保留×××
CLUSTER保留√×√
COALESCE非保留××√
COLLATE非保留√√√
COLLECT非保留√√√
COLUMN保留××√
COLUMNS非保留√√√
COMMENT非保留××√
COMMIT保留×××
COMMITTED非保留√√√
COMPLETE非保留√√√
COMPRESS保留××√
COMPUTE非保留√√√
CONNECT保留××√
CONNECT_NODES非保留√√√
CONSTANT保留××√
CONSTRAINT非保留××√
CONSTRAINTS非保留√√√
CONSTRUCTOR保留√×√
CONTAINS非保留√√√
CONTENT非保留√√√
CONTEXT非保留√√√
CONTINUE保留×××
COPY非保留√√√
CORRESPONDING非保留√√√
CPU_PER_CALL非保留√√√
CPU_PER_SESSION非保留√√√
CREATE保留××√
CREATEDB非保留√√√
CREATEUSER非保留√√√
CROSS非保留××√
CROSSES保留×××
CUBE非保留××√
CURRENT非保留××√
CURSOR保留×××
CURSOR_QUOTA非保留√√√
CYCLE非保留√√√

2.4 D ​

名称类别作为表名作为列名作为列别名
DATABASE非保留√√√
DATAFILE非保留√√√
DATE保留××√
DATETIME保留××√
DAY非保留√√√
DBA非保留√√√
DBA_RECYCLEBIN非保留×√√
DEALLOCATE非保留√√√
DEC保留××√
DECIMAL保留××√
DECLARE保留√×√
DECODE保留×××
DECRYPT非保留√√√
DEFAULT保留××√
DEFERRABLE非保留××√
DEFERRED非保留√√√
DELETE保留××√
DELIMITED非保留√√√
DELIMITERS非保留√√√
DEMAND非保留√√√
DESC保留××√
DESCRIBE非保留√√√
DETERMINISTIC非保留√√√
DIR非保留√√√
DISABLE非保留√√√
DISASSEMBLE非保留√√√
DISCORDFILE非保留√√√
DISJOINT保留×××
DISTINCT保留××√
DO非保留√√√
DOMAIN非保留√√√
DOUBLE保留××√
DRIVEN非保留√√√
DROP保留××√

2.5 E ​

名称类别作为表名作为列名作为列别名
EACH非保留√√√
ELEMENT非保留√√√
ELSE保留××√
ELSEIF保留×××
ELSIF保留×××
EMPTY非保留√√√
ENABLE非保留√√√
ENCODING非保留√√√
ENCRYPT非保留√√√
ENCRYPTOR非保留√√√
END非保留××√
ENDCASE保留×××
ENDFOR保留×××
ENDIF保留×××
ENDLOOP保留×××
EQUALS保留×××
ERROR非保留√√√
ESCAPE非保留√√√
EVERY非保留√√√
EXCEPT非保留××√
EXCEPTION保留×××
EXCEPTIONS非保留√√√
EXCEPTION_INIT非保留×××
EXCLUDE非保留√√√
EXCLUSIVE非保留√√√
EXEC非保留√√√
EXECUTE非保留√√√
EXISTS保留××√
EXIT保留×××
EXPIRE非保留√√√
EXPLAIN非保留××√
EXPORT非保留√√√
EXTEND非保留√√√
EXTERNAL非保留√√√
EXTRACT保留×××

2.6 F ​

名称类别作为表名作为列名作为列别名
FAILED_LOGIN_ATTEMPTS非保留√√√
FALSE保留√×√
FAST非保留√√√
FETCH保留√×√
FIELD非保留√√√
FIELDS非保留√√√
FILTER非保留√√√
FINAL非保留√√√
FINALLY非保留××√
FIRST非保留√√√
FIRST_ROWS非保留√√√
FLASHBACK非保留√√√
FLOAT保留××√
FOLLOWING非保留√√√
FOR保留××√
FORALL非保留√√√
FORCE非保留√√√
FOREIGN非保留××√
FORWARD非保留√√√
FOUND非保留√√√
FREELIST非保留√√√
FREELISTS非保留√√√
FROM保留××√
FULL保留×××
FUNCTION保留√×√

2.7 G ​

名称类别作为表名作为列名作为列别名
G非保留√√√
GENERATED非保留√√√
GET非保留√√√
GET_FORMAT保留√×√
GLOBAL非保留√√√
GOTO非保留√√√
GRANT保留××√
GREATEST非保留××√
GROUP保留××√
GROUPING非保留√√√
GROUPS非保留√√√
GROUP_CONCAT非保留√√√

2.8 H ​

名称类别作为表名作为列名作为列别名
HANDLER非保留√√√
HASH非保留√√√
HAVING保留××√
HEAP非保留√√√
HIDE非保留√√√
HINT非保留√√√
HOTSPOT非保留√√√
HOUR非保留√√√

2.9 I ​

名称类别作为表名作为列名作为列别名
IDENTIFIED非保留√√√
IDENTIFIER非保留√√√
IDENTITY非保留√√√
IF保留×××
IFNULL保留√×√
IGNORE非保留√√√
ILIKE非保留××√
IMMEDIATE保留××√
IMPORT非保留√√√
IN保留××√
INCLUDE非保留√√√
INCREMENT非保留√√√
INDEX保留××√
INDEXTYPE非保留√√√
INDEX_ASC非保留√√√
INDEX_DESC非保留√√√
INDEX_FSS非保留√√√
INDEX_JOIN非保留√√√
INDICATOR非保留√√√
INDICES非保留√√√
INHERITS非保留√√√
INIT非保留√√√
INITIAL非保留√√√
INITIALLY保留√×√
INITRANS非保留√√√
INNER非保留××√
INOUT非保留√√√
INSENSITIVE非保留√√√
INSERT非保留√√√
INSTANTIABLE非保留√√√
INSTEAD非保留√√√
INTERSECT保留××√
INTERSECTS保留×××
INTERVAL保留×××
INTO保留××√
IO非保留√√√
IS保留××√
ISNULL非保留××√
ISOLATION非保留√√√
ISOPEN非保留√√√

2.10 J ​

名称类别作为表名作为列名作为列别名
JOB非保留√√√
JOIN非保留××√
JSON_ARRAYAGG非保留√×√
JSON_OBJECTAGG非保留√×√
JSON_VALUE非保留√×√

2.11 K ​

名称类别作为表名作为列名作为列别名
K非保留√√√
KEEP非保留√√√
KEY非保留√√√
KEYSET非保留√√√

2.12 L ​

名称类别作为表名作为列名作为列别名
LABEL非保留√√√
LANGUAGE保留√√√
LAST非保留√√√
LEADING非保留××√
LEAST非保留××√
LEAVE保留×××
LEFT非保留××√
LEFTOF保留×××
LENGTH非保留√√√
LESS非保留√√√
LEVEL非保留√√√
LEVELS非保留√√√
LEXER保留×××
LIBRARY非保留√√√
LIKE保留××√
LIMIT保留√×√
LINK保留××√
LIST非保留√√√
LISTAGG非保留√√√
LISTEN非保留××√
LOAD非保留√√√
LOB非保留√√√
LOCAL非保留××√
LOCATION非保留√√√
LOCATOR非保留√√√
LOCK保留××√
LOGFILE非保留√√√
LOGGING非保留√√√
LOGIN非保留√√√
LOGOFF非保留√√√
LOGON非保留√√√
LOGOUT非保留√√√
LOOP保留×××
LOVERLAPS保留×××

2.13 M ​

名称类别作为表名作为列名作为列别名
M非保留√√√
MATCH非保留√√√
MATCHED非保留√√√
MATERIALIZED非保留√√√
MAX非保留√√√
MAXEXTENTS非保留√√√
MAXSIZE非保留√√√
MAXTRANS非保留√√√
MAXVALUE非保留√√√
MAXVALUES保留×××
MAX_CONNECT_TIME非保留√√√
MAX_IDLE_TIME非保留√√√
MAX_STORE_NUM非保留√√√
MEMBER保留√×√
MEMORY非保留√√√
MERGE非保留√√√
MICROSECOND非保留√√√
MINEXTENTS非保留√√√
MINUS非保留××√
MINUTE非保留√√√
MINVALUE非保留√√√
MISSING非保留√√√
MODE非保留√√√
MODIFY非保留√√√
MONTH非保留√√√
MOVEMENT非保留√√√

2.14 N ​

名称类别作为表名作为列名作为列别名
NAME非保留√×√
NAMES非保留√√√
NATIONAL非保留√√√
NATURAL非保留××√
NCHAR非保留××√
NESTED非保留√√√
NEW非保留√√√
NEWLINE保留×××
NEXT非保留√√√
NO非保留√√√
NOAPPEND非保留√√√
NOARCHIVELOG非保留√√√
NOAUDIT非保留√√√
NOCACHE非保留√√√
NOCOMPRESS非保留√√√
NOCREATEDB非保留√√√
NOCREATEUSER非保留√√√
NOCYCLE非保留××√
NODE非保留√√√
NOFORCE非保留√√√
NOFOUND非保留√√√
NOINDEX非保留√√√
NOLOGGING非保留√√√
NOMAXVALUE非保留√√√
NOMINVALUE非保留√√√
NONE非保留√√√
NOORDER非保留√√√
NOPARALLEL保留×××
NOT保留××√
NOTFOUND非保留√√√
NOTHING非保留√√√
NOTIFY非保留√√√
NOTNULL非保留××√
NOVALIDATE非保留√√√
NOWAIT非保留××√
NULL保留××√
NULLIF非保留××√
NULLS非保留√√√
NUMBER保留××√
NUMERIC保留××√
NVARCHAR保留××√
NVARCHAR2保留××√
NVL保留×××
NVL2保留×××

2.15 O ​

名称类别作为表名作为列名作为列别名
OBJECT非保留√√√
OF非保留√√√
OFF非保留××√
OFFLINE非保留√√√
OFFSET非保留√√√
OIDINDEX非保留√√√
OIDS非保留√√√
OLD非保留√√√
ON保留××√
ONLINE非保留√√√
ONLY非保留√√√
OPEN非保留√√√
OPERATOR非保留√√√
OPTION非保留√√√
OR保留××√
ORDER保留××√
ORDERD非保留√√√
ORGANIZATION非保留√√√
OTHERVALUES保留×××
OUT保留××√
OUTER非保留√√√
OVER保留×××
OVERLAPS非保留√√√
OWNER非保留√√√

2.16 P ​

名称类别作为表名作为列名作为列别名
PACKAGE非保留√√√
PARALLEL保留√√√
PARAMETERS非保留√√√
PARTIAL非保留√√√
PARTITION保留×××
PARTITIONS非保留√√√
PASSING非保留√√√
PASSWORD非保留√√√
PASSWORD_LIFE_PERIOD非保留√√√
PASSWORD_LOCK_TIME非保留√√√
PATH非保留√√√
PCTFREE保留√√√
PCTINCREASE非保留√√√
PCTUSED非保留√√√
PCTVERSION非保留√√√
PERIOD非保留√√√
PIPE非保留√√√
PIPELINED非保留√√√
PIVOT非保留√√√
PLACING非保留√√√
POLICY保留×××
PRAGMA保留√×√
PREBUILT非保留√√√
PRECEDING非保留√√√
PRECISION非保留√√√
PREPARE非保留√√√
PRESERVE非保留√√√
PRIMARY保留√×√
PRIOR非保留××√
PRIORITY非保留√√√
PRIVATE_SGA非保留√√√
PRIVILEGES非保留√√√
PROCEDURAL非保留√√√
PROCEDURE保留√×√
PROFILE非保留√√√
PROTECTED非保留√√√
PUBLIC非保留√√√
PURGE非保留√√√

2.17 Q ​

名称类别作为表名作为列名作为列别名
QUARTER非保留√√√
QUERY非保留√√√
QUOTA非保留√√√

2.18 R ​

名称类别作为表名作为列名作为列别名
RAISE保留×××
RANGE非保留√√√
RAW保留××√
READ非保留√√√
READS非保留√√√
READS_PER_CALL非保留√√√
READS_PER_SESSION非保留√√√
REBUILD非保留√√√
RECOMPILE非保留√√√
RECORD非保留√√√
RECORDS非保留√√√
RECYCLE非保留√√√
RECYCLEBIN非保留×√√
REDUCED非保留√√√
REF非保留√√√
REFERENCES非保留××√
REFERENCING非保留√√√
REFRESH非保留√√√
REINDEX非保留√√√
RELATIVE非保留√√√
RELEASE非保留√√√
RENAME保留√×√
REOPEN非保留√√√
REPEATABLE非保留√√√
REPLACE非保留√√√
REPLICATION非保留√√√
RESOURCE非保留√√√
RESTART非保留√√√
RESTORE非保留√√√
RESTRICT保留×××
RESULT非保留√√√
RESULT_CACHE非保留√√√
RETURN保留×××
RETURNING保留×××
REVERSE保留√√√
REVOKE非保留√√√
REWRITE非保留√√√
RIGHT非保留××√
RIGHTOF保留×××
ROLE非保留√√√
ROLLBACK保留×××
ROLLUP非保留××√
ROVERLAPS保留×××
ROW非保留√√√
ROWCOUNT非保留√√√
ROWID非保留√√√
ROWS非保留√√√
ROWTYPE非保留√√√
RULE非保留√√√
RUN非保留√√√

2.19 S ​

名称类别作为表名作为列名作为列别名
SAVEPOINT非保留√√√
SCHEMA非保留√√√
SCROLL非保留√√√
SECOND非保留√√√
SEGMENT非保留√√√
SELECT保留××√
SELF非保留××√
SEPARATOR保留××√
SEQUENCE非保留√√√
SERIALIZABLE非保留√√√
SESSION非保留√√√
SESSION_PER_USER非保留√√√
SET保留××√
SETOF非保留××√
SETS非保留√√√
SHARE非保留√√√
SHOW非保留√√√
SHUTDOWN非保留××√
SIBLINGS非保留√√√
SIZE非保留√√√
SLOW非保留√√√
SNAPSHOT非保留√√√
SOME非保留××√
SPATIAL非保留√√√
SPLIT非保留√√√
SSO非保留√√√
STANDBY非保留√√√
START保留×××
STATEMENT非保留√√√
STATIC保留√×√
STATISTICS非保留√√√
STEP非保留√√√
STOP非保留√√√
STORAGE非保留√√√
STORE非保留√√√
STORE_NODES非保留√√√
STREAM非保留√√√
SUBPARTITION保留×××
SUBPARTITIONS非保留√√√
SUBTYPE保留√√√
SUCCESSFUL非保留√√√
SYNONYM非保留√√√
SYSARGS非保留√√√
SYSTEM非保留√√√

2.20 T ​

名称类别作为表名作为列名作为列别名
TABLE保留××√
TABLESPACE非保留√√√
TEMP非保留√√√
TEMPLATE非保留√√√
TEMPORARY非保留√√√
TEMPSPACE_QUOTA非保留√√√
TERMINATED非保留√√√
THAN非保留√√√
THEN保留××√
THROW非保留√√√
TIME保留××√
TIMESTAMP保留××√
TIMESTAMPADD保留√×√
TIMESTAMPDIFF保留√×√
TO保留××√
TOP非保留××√
TOPOVERLAPS非保留×××
TOTAL_RESOURCE_LIMIT非保留√√√
TOUCHES保留×××
TRACE非保留√√√
TRAILING保留√×√
TRAN非保留××√
TRANSACTION非保留××√
TRIGGER保留××√
TRUE非保留××√
TRUNCATE非保留√√√
TRUSTED非保留√√√
TRY非保留√√√
TYPE保留√√√

2.21 U ​

名称类别作为表名作为列名作为列别名
UNBOUNDED保留√×√
UNDER保留×××
UNDO非保留√√√
UNIFORM非保留√√√
UNION保留××√
UNIQUE保留××√
UNLIMITED非保留√√√
UNLISTEN非保留√√√
UNLOCK非保留√√√
UNPIVOT非保留√√√
UNPROTECTED非保留√√√
UNTIL非保留√√√
UOVERLAPS保留×××
UPDATE保留××√
USE保留×××
USER保留×××
USE_HASH非保留√√√
USING非保留××√

2.22 V ​

名称类别作为表名作为列名作为列别名
VACUUM非保留××√
VALID非保留√√√
VALIDATE非保留√√√
VALUE非保留√√√
VALUES保留××√
VARBIT保留××√
VARCHAR保留××√
VARCHAR2保留××√
VARRAY非保留√√√
VARYING保留×××
VERBOSE保留××√
VERSION非保留√√√
VIEW保留××√
VOCABLE非保留√√√

2.23 W ​

名称类别作为表名作为列名作为列别名
WAIT非保留××√
WEEK非保留√√√
WHEN非保留××√
WHENEVER非保留√√√
WHERE保留√×√
WHILE保留×××
WITH保留×××
WITHIN保留×××
WITHOUT保留×××
WORK非保留××√
WRITE非保留√√√

2.24 X ​

名称类别作为表名作为列名作为列别名
XML非保留√√√
XMLATTRIBUTES非保留×××
XMLCAST非保留×××
XMLELEMENT非保留×××
XMLEXISTS非保留×××
XMLFOREST非保留×××
XMLQUERY非保留×××
XMLTABLE非保留×××

2.25 Y ​

名称类别作为表名作为列名作为列别名
YEAR非保留√√√

2.26 Z ​

名称类别作为表名作为列名作为列别名
ZONE非保留√√√