- publishing free software manuals
The PostgreSQL 9.0 Reference Manual - Volume 1A - SQL Language Reference
by The PostgreSQL Global Development Group
Paperback (6"x9"), 454 pages
ISBN 9781906966041
RRP £14.95 ($19.95)

Sales of this book support the PostgreSQL project! Get a printed copy>>>

C SQL Key Words

Table C-1 lists all tokens that are key words in the SQL standard and in PostgreSQL 9.0.1. Background information can be found in section 2.1.1 Identifiers and Key Words.

SQL distinguishes between reserved and non-reserved key words. According to the standard, reserved key words are the only real key words; they are never allowed as identifiers. Non-reserved key words only have a special meaning in particular contexts and can be used as identifiers in other contexts. Most non-reserved key words are actually the names of built-in tables and functions specified by SQL. The concept of non-reserved key words essentially only exists to declare that some predefined meaning is attached to a word in some contexts.

In the PostgreSQL parser life is a bit more complicated. There are several different classes of tokens ranging from those that can never be used as an identifier to those that have absolutely no special status in the parser as compared to an ordinary identifier. (The latter is usually the case for functions specified by SQL.) Even reserved key words are not completely reserved in PostgreSQL, but can be used as column labels (for example, SELECT 55 AS CHECK, even though CHECK is a reserved key word).

In Table C-1 in the column for PostgreSQL we classify as “non-reserved” those key words that are explicitly known to the parser but are allowed as column or table names. Some key words that are otherwise non-reserved cannot be used as function or data type names and are marked accordingly. (Most of these words represent built-in functions or data types with special syntax. The function or type is still available but it cannot be redefined by the user.) Labeled “reserved” are those tokens that are not allowed as column or table names. Some reserved key words are allowable as names for functions or data types; this is also shown in the table. If not so marked, a reserved key word is only allowed as an “AS” column label name.

As a general rule, if you get spurious parser errors for commands that contain any of the listed key words as an identifier you should try to quote the identifier to see if the problem goes away.

It is important to understand before studying Table C-1 that the fact that a key word is not reserved in PostgreSQL does not mean that the feature related to the word is not implemented. Conversely, the presence of a key word does not indicate the existence of a feature.

Table C-1: SQL Key Words (r = reserved, nr = non-reserved)
Key Word PostgreSQL SQL:2008 SQL:2003 SQL:1999 SQL-92
A nr nr
ABORT nr
ABS r r nr
ABSENT nr
ABSOLUTE nr nr nr r r
ACCESS nr
ACCORDING nr
ACTION nr nr nr r r
ADA nr nr nr nr
ADD nr nr nr r r
ADMIN nr nr nr r
AFTER nr nr nr r
AGGREGATE nr r
ALIAS r
ALL r r r r r
ALLOCATE r r r r
ALSO nr
ALTER nr r r r r
ALWAYS nr nr nr
ANALYSE r
ANALYZE r
AND r r r r r
ANY r r r r r
ARE r r r r
ARRAY r r r r
ARRAY_AGG r
AS r r r r r
ASC r nr nr r r
ASENSITIVE r r nr
ASSERTION nr nr nr r r
ASSIGNMENT nr nr nr nr
ASYMMETRIC r r r nr
AT nr r r r r
ATOMIC r r nr
ATTRIBUTE nr nr
ATTRIBUTES nr nr
AUTHORIZATION r (can be function or type) r r r r
AVG r r nr r
BACKWARD nr
BASE64 nr nr
BEFORE nr nr nr r
BEGIN nr r r r r
BERNOULLI nr nr
BETWEEN nr (cannot be function or type) r r nr r
BIGINT nr (cannot be function or type) r r
BINARY r (can be function or type) r r r
BIT nr (cannot be function or type) r r
BITVAR nr
BIT_LENGTH nr r
BLOB r r r
BLOCKED nr nr
BOM nr
BOOLEAN nr (cannot be function or type) r r r
BOTH r r r r r
BREADTH nr nr r
BY nr r r r r
C nr nr nr nr
CACHE nr
CALL r r r
CALLED nr r r nr
CARDINALITY r r nr
CASCADE nr nr nr r r
CASCADED nr r r r r
CASE r r r r r
CAST r r r r r
CATALOG nr nr nr r r
CATALOG_NAME nr nr nr nr
CEIL r r
CEILING r r
CHAIN nr nr nr nr
CHAR nr (cannot be function or type) r r r r
CHARACTER nr (cannot be function or type) r r r r
CHARACTERISTICS nr nr nr
CHARACTERS nr nr
CHARACTER_LENGTH r r nr r
CHARACTER_SET_CATALOG nr nr nr nr
CHARACTER_SET_NAME nr nr nr nr
CHARACTER_SET_SCHEMA nr nr nr nr
CHAR_LENGTH r r nr r
CHECK r r r r r
CHECKED nr
CHECKPOINT nr
CLASS nr r
CLASS_ORIGIN nr nr nr nr
CLOB r r r
CLOSE nr r r r r
CLUSTER nr
COALESCE nr (cannot be function or type) r r nr r
COBOL nr nr nr nr
COLLATE r r r r r
COLLATION nr nr r r
COLLATION_CATALOG nr nr nr nr
COLLATION_NAME nr nr nr nr
COLLATION_SCHEMA nr nr nr nr
COLLECT r r
COLUMN r r r r r
COLUMNS nr
COLUMN_NAME nr nr nr nr
COMMAND_FUNCTION nr nr nr nr
COMMAND_FUNCTION_CODE nr nr nr
COMMENT nr
COMMENTS nr
COMMIT nr r r r r
COMMITTED nr nr nr nr nr
COMPLETION r
CONCURRENTLY r (can be function or type)
CONDITION r r
CONDITION_NUMBER nr nr nr nr
CONFIGURATION nr
CONNECT r r r r
CONNECTION nr nr nr r r
CONNECTION_NAME nr nr nr nr
CONSTRAINT r r r r r
CONSTRAINTS nr nr nr r r
CONSTRAINT_CATALOG nr nr nr nr
CONSTRAINT_NAME nr nr nr nr
CONSTRAINT_SCHEMA nr nr nr nr
CONSTRUCTOR nr nr r
CONTAINS nr nr nr
CONTENT nr nr nr
CONTINUE nr nr nr r r
CONTROL nr nr
CONVERSION nr
CONVERT r r nr r
COPY nr
CORR r r
CORRESPONDING r r r r
COST nr
COUNT r r nr r
COVAR_POP r r
COVAR_SAMP r r
CREATE r r r r r
CREATEDB nr
CREATEROLE nr
CREATEUSER nr
CROSS r (can be function or type) r r r r
CSV nr
CUBE r r r
CUME_DIST r r
CURRENT nr r r r r
CURRENT_CATALOG r r
CURRENT_DATE r r r r r
CURRENT_DEFAULT_TRANSFORM_GROUP r r
CURRENT_PATH r r r
CURRENT_ROLE r r r r
CURRENT_SCHEMA r (can be function or type) r
CURRENT_TIME r r r r r
CURRENT_TIMESTAMP r r r r r
CURRENT_TRANSFORM_GROUP_FOR_TYPE r r
CURRENT_USER r r r r r
CURSOR nr r r r r
CURSOR_NAME nr nr nr nr
CYCLE nr r r r
DATA nr nr nr r nr
DATABASE nr
DATALINK r r
DATE r r r r
DATETIME_INTERVAL_CODE nr nr nr nr
DATETIME_INTERVAL_PRECISION nr nr nr nr
DAY nr r r r r
DB nr nr
DEALLOCATE nr r r r r
DEC nr (cannot be function or type) r r r r
DECIMAL nr (cannot be function or type) r r r r
DECLARE nr r r r r
DEFAULT r r r r r
DEFAULTS nr nr nr
DEFERRABLE r nr nr r r
DEFERRED nr nr nr r r
DEFINED nr nr nr
DEFINER nr nr nr nr
DEGREE nr nr
DELETE nr r r r r
DELIMITER nr
DELIMITERS nr
DENSE_RANK r r
DEPTH nr nr r
DEREF r r r
DERIVED nr nr
DESC r nr nr r r
DESCRIBE r r r r
DESCRIPTOR nr nr r r
DESTROY r
DESTRUCTOR r
DETERMINISTIC r r r
DIAGNOSTICS nr nr r r
DICTIONARY nr r
DISABLE nr
DISCARD nr
DISCONNECT r r r r
DISPATCH nr nr nr
DISTINCT r r r r r
DLNEWCOPY r r
DLPREVIOUSCOPY r r
DLURLCOMPLETE r r
DLURLCOMPLETEONLY r r
DLURLCOMPLETEWRITE r r
DLURLPATH r r
DLURLPATHONLY r r
DLURLPATHWRITE r r
DLURLSCHEME r r
DLURLSERVER r r
DLVALUE r r
DO r
DOCUMENT nr nr nr
DOMAIN nr nr nr r r
DOUBLE nr r r r r
DROP nr r r r r
DYNAMIC r r r
DYNAMIC_FUNCTION nr nr nr nr
DYNAMIC_FUNCTION_CODE nr nr nr
EACH nr r r r
ELEMENT r r
ELSE r r r r r
EMPTY nr
ENABLE nr
ENCODING nr nr
ENCRYPTED nr
END r r r r r
END-EXEC r r r r
ENUM nr
EQUALS nr nr r
ESCAPE nr r r r r
EVERY r r r
EXCEPT r r r r r
EXCEPTION nr r r
EXCLUDE nr nr nr
EXCLUDING nr nr nr
EXCLUSIVE nr
EXEC r r r r
EXECUTE nr r r r r
EXISTING nr
EXISTS nr (cannot be function or type) r r nr r
EXP r r
EXPLAIN nr
EXTERNAL nr r r r r
EXTRACT nr (cannot be function or type) r r nr r
FALSE r r r r r
FAMILY nr
FETCH r r r r r
FILE nr nr
FILTER r r
FINAL nr nr nr
FIRST nr nr nr r r
FIRST_VALUE r
FLAG nr
FLOAT nr (cannot be function or type) r r r r
FLOOR r r
FOLLOWING nr nr nr
FOR r r r r r
FORCE nr
FOREIGN r r r r r
FORTRAN nr nr nr nr
FORWARD nr
FOUND nr nr r r
FREE r r r
FREEZE r (can be function or type)
FROM r r r r r
FS nr nr
FULL r (can be function or type) r r r r
FUNCTION nr r r r
FUNCTIONS nr
FUSION r r
G nr nr nr
GENERAL nr nr r
GENERATED nr nr nr
GET r r r r
GLOBAL nr r r r r
GO nr nr r r
GOTO nr nr r r
GRANT r r r r r
GRANTED nr nr nr nr
GREATEST nr (cannot be function or type)
GROUP r r r r r
GROUPING r r r
HANDLER nr
HAVING r r r r r
HEADER nr
HEX nr nr
HIERARCHY nr nr nr
HOLD nr r r nr
HOST r
HOUR nr r r r r
ID nr
IDENTITY nr r r r r
IF nr
IGNORE nr r
ILIKE r (can be function or type)
IMMEDIATE nr nr nr r r
IMMUTABLE nr
IMPLEMENTATION nr nr nr
IMPLICIT nr
IMPORT r r
IN r r r r r
INCLUDING nr nr nr
INCREMENT nr nr nr
INDENT nr
INDEX nr
INDEXES nr
INDICATOR r r r r
INFIX nr
INHERIT nr
INHERITS nr
INITIALIZE r
INITIALLY r nr nr r r
INLINE nr
INNER r (can be function or type) r r r r
INOUT nr (cannot be function or type) r r r
INPUT nr nr nr r r
INSENSITIVE nr r r nr r
INSERT nr r r r r
INSTANCE nr nr nr
INSTANTIABLE nr nr nr
INSTEAD nr nr
INT nr (cannot be function or type) r r r r
INTEGER nr (cannot be function or type) r r r r
INTEGRITY nr nr
INTERSECT r r r r r
INTERSECTION r r
INTERVAL nr (cannot be function or type) r r r r
INTO r r r r r
INVOKER nr nr nr nr
IS r (can be function or type) r r r r
ISNULL r (can be function or type)
ISOLATION nr nr nr r r
ITERATE r
JOIN r (can be function or type) r r r r
K nr nr nr
KEY nr nr nr r r
KEY_MEMBER nr nr nr
KEY_TYPE nr nr nr
LAG r
LANGUAGE nr r r r r
LARGE nr r r r
LAST nr nr nr r r
LAST_VALUE r
LATERAL r r r
LC_COLLATE nr
LC_CTYPE nr
LEAD r
LEADING r r r r r
LEAST nr (cannot be function or type)
LEFT r (can be function or type) r r r r
LENGTH nr nr nr nr
LESS r
LEVEL nr nr nr r r
LIBRARY nr nr
LIKE r (can be function or type) r r r r
LIKE_REGEX r
LIMIT r nr nr r
LINK nr nr
LISTEN nr
LN r r
LOAD nr
LOCAL nr r r r r
LOCALTIME r r r r
LOCALTIMESTAMP r r r r
LOCATION nr nr
LOCATOR nr nr r
LOCK nr
LOGIN nr
LOWER r r nr r
M nr nr nr
MAP nr nr r
MAPPING nr nr nr
MATCH nr r r r r
MATCHED nr nr
MAX r r nr r
MAXVALUE nr nr nr
MAX_CARDINALITY r
MEMBER r r
MERGE r r
MESSAGE_LENGTH nr nr nr nr
MESSAGE_OCTET_LENGTH nr nr nr nr
MESSAGE_TEXT nr nr nr nr
METHOD r r nr
MIN r r nr r
MINUTE nr r r r r
MINVALUE nr nr nr
MOD r r nr
MODE nr
MODIFIES r r r
MODIFY r
MODULE r r r r
MONTH nr r r r r
MORE nr nr nr nr
MOVE nr
MULTISET r r
MUMPS nr nr nr nr
NAME nr nr nr nr nr
NAMES nr nr nr r r
NAMESPACE nr
NATIONAL nr (cannot be function or type) r r r r
NATURAL r (can be function or type) r r r r
NCHAR nr (cannot be function or type) r r r r
NCLOB r r r
NESTING nr nr
NEW r r r
NEXT nr nr nr r r
NFC nr
NFD nr
NFKC nr
NFKD nr
NIL nr
NO nr r r r r
NOCREATEDB nr
NOCREATEROLE nr
NOCREATEUSER nr
NOINHERIT nr
NOLOGIN nr
NONE nr (cannot be function or type) r r r
NORMALIZE r r
NORMALIZED nr nr
NOSUPERUSER nr
NOT r r r r r
NOTHING nr
NOTIFY nr
NOTNULL r (can be function or type)
NOWAIT nr
NTH_VALUE r
NTILE r
NULL r r r r r
NULLABLE nr nr nr nr
NULLIF nr (cannot be function or type) r r nr r
NULLS nr nr nr
NUMBER nr nr nr nr
NUMERIC nr (cannot be function or type) r r r r
OBJECT nr nr nr r
OCCURRENCES_REGEX r
OCTETS nr nr
OCTET_LENGTH r r nr r
OF nr r r r r
OFF r nr nr r
OFFSET r r
OIDS nr
OLD r r r
ON r r r r r
ONLY r r r r r
OPEN r r r r
OPERATION r
OPERATOR nr
OPTION nr nr nr r r
OPTIONS nr nr nr nr
OR r r r r r
ORDER r r r r r
ORDERING nr nr
ORDINALITY nr nr r
OTHERS nr nr
OUT nr (cannot be function or type) r r r
OUTER r (can be function or type) r r r r
OUTPUT nr nr r r
OVER r (can be function or type) r r
OVERLAPS r (can be function or type) r r nr r
OVERLAY nr (cannot be function or type) r r nr
OVERRIDING nr nr nr
OWNED nr
OWNER nr
P nr
PAD nr nr r r
PARAMETER r r r
PARAMETERS r
PARAMETER_MODE nr nr nr
PARAMETER_NAME nr nr nr
PARAMETER_ORDINAL_POSITION nr nr nr
PARAMETER_SPECIFIC_CATALOG nr nr nr
PARAMETER_SPECIFIC_NAME nr nr nr
PARAMETER_SPECIFIC_SCHEMA nr nr nr
PARSER nr
PARTIAL nr nr nr r r
PARTITION nr r r
PASCAL nr nr nr nr
PASSING nr
PASSTHROUGH nr nr
PASSWORD nr
PATH nr nr r
PERCENTILE_CONT r r
PERCENTILE_DISC r r
PERCENT_RANK r r
PERMISSION nr nr
PLACING r nr nr
PLANS nr
PLI nr nr nr nr
POSITION nr (cannot be function or type) r r nr r
POSITION_REGEX r
POSTFIX r
POWER r r
PRECEDING nr nr nr
PRECISION nr (cannot be function or type) r r r r
PREFIX r
PREORDER r
PREPARE nr r r r r
PREPARED nr
PRESERVE nr nr nr r r
PRIMARY r r r r r
PRIOR nr nr nr r r
PRIVILEGES nr nr nr r r
PROCEDURAL nr
PROCEDURE nr r r r r
PUBLIC nr nr r r
QUOTE nr
RANGE nr r r
RANK r r
READ nr nr nr r r
READS r r r
REAL nr (cannot be function or type) r r r r
REASSIGN nr
RECHECK nr
RECOVERY nr nr
RECURSIVE nr r r r
REF r r r
REFERENCES r r r r r
REFERENCING r r r
REGR_AVGX r r
REGR_AVGY r r
REGR_COUNT r r
REGR_INTERCEPT r r
REGR_R2 r r
REGR_SLOPE r r
REGR_SXX r r
REGR_SXY r r
REGR_SYY r r
REINDEX nr
RELATIVE nr nr nr r r
RELEASE nr r r
RENAME nr
REPEATABLE nr nr nr nr nr
REPLACE nr
REPLICA nr
REQUIRING nr nr
RESET nr
RESPECT nr
RESTART nr nr nr
RESTORE nr nr
RESTRICT nr nr nr r r
RESULT r r r
RETURN r r r
RETURNED_CARDINALITY nr nr
RETURNED_LENGTH nr nr nr nr
RETURNED_OCTET_LENGTH nr nr nr nr
RETURNED_SQLSTATE nr nr nr nr
RETURNING r nr
RETURNS nr r r r
REVOKE nr r r r r
RIGHT r (can be function or type) r r r r
ROLE nr nr nr r
ROLLBACK nr r r r r
ROLLUP r r r
ROUTINE nr nr r
ROUTINE_CATALOG nr nr nr
ROUTINE_NAME nr nr nr
ROUTINE_SCHEMA nr nr nr
ROW nr (cannot be function or type) r r r
ROWS nr r r r r
ROW_COUNT nr nr nr nr
ROW_NUMBER r r
RULE nr
SAVEPOINT nr r r r
SCALE nr nr nr nr
SCHEMA nr nr nr r r
SCHEMA_NAME nr nr nr nr
SCOPE r r r
SCOPE_CATALOG nr nr
SCOPE_NAME nr nr
SCOPE_SCHEMA nr nr
SCROLL nr r r r r
SEARCH nr r r r
SECOND nr r r r r
SECTION nr nr r r
SECURITY nr nr nr nr
SELECT r r r r r
SELECTIVE nr nr
SELF nr nr nr
SENSITIVE r r nr
SEQUENCE nr nr nr r
SEQUENCES nr
SERIALIZABLE nr nr nr nr nr
SERVER nr nr nr
SERVER_NAME nr nr nr nr
SESSION nr nr nr r r
SESSION_USER r r r r r
SET nr r r r r
SETOF nr (cannot be function or type)
SETS nr nr r
SHARE nr
SHOW nr
SIMILAR r (can be function or type) r r nr
SIMPLE nr nr nr nr
SIZE nr nr r r
SMALLINT nr (cannot be function or type) r r r r
SOME r r r r r
SOURCE nr nr nr
SPACE nr nr r r
SPECIFIC r r r
SPECIFICTYPE r r r
SPECIFIC_NAME nr nr nr
SQL r r r r
SQLCODE r
SQLERROR r
SQLEXCEPTION r r r
SQLSTATE r r r r
SQLWARNING r r r
SQRT r r
STABLE nr
STANDALONE nr nr nr
START nr r r r
STATE nr nr r
STATEMENT nr nr nr r
STATIC r r r
STATISTICS nr
STDDEV_POP r r
STDDEV_SAMP r r
STDIN nr
STDOUT nr
STORAGE nr
STRICT nr
STRIP nr nr nr
STRUCTURE nr nr r
STYLE nr nr nr
SUBCLASS_ORIGIN nr nr nr nr
SUBLIST nr
SUBMULTISET r r
SUBSTRING nr (cannot be function or type) r r nr r
SUBSTRING_REGEX r
SUM r r nr r
SUPERUSER nr
SYMMETRIC r r r nr
SYSID nr
SYSTEM nr r r nr
SYSTEM_USER r r r r
T nr
TABLE r r r r r
TABLES nr
TABLESAMPLE r r
TABLESPACE nr
TABLE_NAME nr nr nr nr
TEMP nr
TEMPLATE nr
TEMPORARY nr nr nr r r
TERMINATE r
TEXT nr
THAN r
THEN r r r r r
TIES nr nr
TIME nr (cannot be function or type) r r r r
TIMESTAMP nr (cannot be function or type) r r r r
TIMEZONE_HOUR r r r r
TIMEZONE_MINUTE r r r r
TO r r r r r
TOKEN nr nr
TOP_LEVEL_COUNT nr nr
TRAILING r r r r r
TRANSACTION nr nr nr r r
TRANSACTIONS_COMMITTED nr nr nr
TRANSACTIONS_ROLLED_BACK nr nr nr
TRANSACTION_ACTIVE nr nr nr
TRANSFORM nr nr nr
TRANSFORMS nr nr nr
TRANSLATE r r nr r
TRANSLATE_REGEX r
TRANSLATION r r r r
TREAT nr (cannot be function or type) r r r
TRIGGER nr r r r
TRIGGER_CATALOG nr nr nr
TRIGGER_NAME nr nr nr
TRIGGER_SCHEMA nr nr nr
TRIM nr (cannot be function or type) r r nr r
TRIM_ARRAY r
TRUE r r r r r
TRUNCATE nr r
TRUSTED nr
TYPE nr nr nr nr nr
UESCAPE r r
UNBOUNDED nr nr nr
UNCOMMITTED nr nr nr nr nr
UNDER nr nr r
UNENCRYPTED nr
UNION r r r r r
UNIQUE r r r r r
UNKNOWN nr r r r r
UNLINK nr nr
UNLISTEN nr
UNNAMED nr nr nr nr
UNNEST r r r
UNTIL nr
UNTYPED nr
UPDATE nr r r r r
UPPER r r nr r
URI nr
USAGE nr nr r r
USER r r r r r
USER_DEFINED_TYPE_CATALOG nr nr nr
USER_DEFINED_TYPE_CODE nr nr
USER_DEFINED_TYPE_NAME nr nr nr
USER_DEFINED_TYPE_SCHEMA nr nr nr
USING r r r r r
VACUUM nr
VALID nr nr
VALIDATOR nr
VALUE nr r r r r
VALUES nr (cannot be function or type) r r r r
VARBINARY r
VARCHAR nr (cannot be function or type) r r r r
VARIABLE r
VARIADIC r
VARYING nr r r r r
VAR_POP r r
VAR_SAMP r r
VERBOSE r (can be function or type)
VERSION nr nr nr
VIEW nr nr nr r r
VOLATILE nr
WHEN r r r r r
WHENEVER r r r r
WHERE r r r r r
WHITESPACE nr nr nr
WIDTH_BUCKET r r
WINDOW r r r
WITH r r r r r
WITHIN r r
WITHOUT nr r r r
WORK nr nr nr r r
WRAPPER nr nr nr
WRITE nr nr nr r r
XML nr r r
XMLAGG r r
XMLATTRIBUTES nr (cannot be function or type) r r
XMLBINARY r r
XMLCAST r
XMLCOMMENT r r
XMLCONCAT nr (cannot be function or type) r r
XMLDECLARATION nr
XMLDOCUMENT r
XMLELEMENT nr (cannot be function or type) r r
XMLEXISTS r
XMLFOREST nr (cannot be function or type) r r
XMLITERATE r
XMLNAMESPACES r r
XMLPARSE nr (cannot be function or type) r r
XMLPI nr (cannot be function or type) r r
XMLQUERY r
XMLROOT nr (cannot be function or type) r
XMLSCHEMA nr
XMLSERIALIZE nr (cannot be function or type) r r
XMLTABLE r
XMLTEXT r
XMLVALIDATE r
YEAR nr r r r r
YES nr nr
ZONE nr nr nr r r
ISBN 9781906966041The PostgreSQL 9.0 Reference Manual - Volume 1A - SQL Language ReferenceSee the print edition