Apêndice B. Palavras chave do SQL

A Tabela B-1 lista todas os termos (tokens) que são palavras chave do SQL no PostgreSQL 7.3.4. Informações básicas podem ser encontradas na Seção 1.1.1.

O padrão SQL faz distinção entre palavras chave reservadas e não reservadas. De acordo com o padrão, as palavras chave reservadas são as únicas palavras chave reais; nunca podem ser utilizadas como identificadores. As palavras chave não reservadas somente possuem significado especial em alguns contextos, sendo possível utilizá-las como identificador em outros contextos. Em sua maioria, as palavras chave não reservadas são, na verdade, nomes de tabelas nativas e funções especificadas pelo padrão SQL. Essencialmente, o conceito de palavra chave não reservada existe apenas para declarar a associação desta palavra com um significado predefinido em alguns contextos.

A vida do analisador do PostgreSQL é um pouco mais complicada. Existem várias classes diferentes de termos, indo desde aqueles que nunca podem ser utilizados como identificador, até aqueles que não possuem nenhum status especial no analisador se comparado com um identificador comum (Geralmente, este último é o caso das funções especificadas pelo padrão SQL). Mesmo as palavras chave reservadas não são totalmente reservadas no PostgreSQL, sendo possível utilizá-las como títulos de colunas (por exemplo, SELECT 55 AS CHECK, embora CHECK seja uma palavra chave reservada).

Na coluna PostgreSQL da Tabela B-1 são classificadas como "não reservadas" as palavras chave explicitamente reconhecidas pelo analisador mas permitidas na maioria ou em todos os contextos onde um identificador é esperado. Existem algumas palavras chave não reservadas que não podem ser utilizadas como nome de função ou de tipo de dado, estando devidamente indicado (Em sua maioria, estas palavras representam funções nativas ou tipos de dado com sintaxe especial. A função ou o tipo continuam disponíveis, mas não podem ser redefinidos pelo usuário). Na coluna "reservadas" estão os termos permitidos apenas como rótulos de coluna utilizando o "AS" (e, talvez, em muito poucos outros contextos). Algumas palavras chave reservadas são permitidas como nome de função; isto também está indicado na tabela.

Como regra geral, acontecendo erros indevidos do analisador em comandos contendo como identificador qualquer uma das palavras chave listadas, deve ser tentado colocar o identificador entre aspas para ver se o problema desaparece.

Antes de estudar a Tabela B-1, é importante compreender o fato de uma palavra chave não ser reservada no PostgreSQL não significa que a funcionalidade associada a esta palavra chave não está implementada. Inversamente, a presença de uma palavra chave não indica a implementação da funcionalidade.

Tabela B-1. palavras chave do SQL

Palavra chavePostgreSQLSQL 99SQL 92
ABORTnão-reservada  
ABS não-reservada 
ABSOLUTEnão-reservadareservadareservada
ACCESSnão-reservada  
ACTIONnão-reservadareservadareservada
ADA não-reservadanão-reservada
ADDnão-reservadareservadareservada
ADMIN reservada 
AFTERnão-reservadareservada 
AGGREGATEnão-reservadareservada 
ALIAS reservada 
ALLreservadareservadareservada
ALLOCATE reservadareservada
ALTERnão-reservadareservadareservada
ANALYSEreservada  
ANALYZEreservada  
ANDreservadareservadareservada
ANYreservadareservadareservada
ARE reservadareservada
ARRAY reservada 
ASreservadareservadareservada
ASCreservadareservadareservada
ASENSITIVE não-reservada 
ASSERTIONnão-reservadareservadareservada
ASSIGNMENTnão-reservadanão-reservada 
ASYMMETRIC não-reservada 
ATnão-reservadareservadareservada
ATOMIC não-reservada 
AUTHORIZATIONreservada (pode ser função)reservadareservada
AVG não-reservadareservada
BACKWARDnão-reservada  
BEFOREnão-reservadareservada 
BEGINnão-reservadareservadareservada
BETWEENreservada (pode ser função)não-reservadareservada
BIGINTnão-reservada (não pode ser função ou tipo)  
BINARYreservada (pode ser função)reservada 
BITnão-reservada (não pode ser função ou tipo)reservadareservada
BITVAR não-reservada 
BIT_LENGTH não-reservadareservada
BLOB reservada 
BOOLEANnão-reservada (não pode ser função ou tipo)reservada 
BOTHreservadareservadareservada
BREADTH reservada 
BYnão-reservadareservadareservada
C não-reservadanão-reservada
CACHEnão-reservada  
CALL reservada 
CALLEDnão-reservadanão-reservada 
CARDINALITY não-reservada 
CASCADEnão-reservadareservadareservada
CASCADED reservadareservada
CASEreservadareservadareservada
CASTreservadareservadareservada
CATALOG reservadareservada
CATALOG_NAME não-reservadanão-reservada
CHAINnão-reservadanão-reservada 
CHARnão-reservada (não pode ser função ou tipo)reservadareservada
CHARACTERnão-reservada (não pode ser função ou tipo)reservadareservada
CHARACTERISTICSnão-reservada  
CHARACTER_LENGTH não-reservadareservada
CHARACTER_SET_CATALOG não-reservadanão-reservada
CHARACTER_SET_NAME não-reservadanão-reservada
CHARACTER_SET_SCHEMA não-reservadanão-reservada
CHAR_LENGTH não-reservadareservada
CHECKreservadareservadareservada
CHECKED não-reservada 
CHECKPOINTnão-reservada  
CLASSnão-reservadareservada 
CLASS_ORIGIN não-reservadanão-reservada
CLOB reservada 
CLOSEnão-reservadareservadareservada
CLUSTERnão-reservada  
COALESCEnão-reservada (não pode ser função ou tipo)não-reservadareservada
COBOL não-reservadanão-reservada
COLLATEreservadareservadareservada
COLLATION reservadareservada
COLLATION_CATALOG não-reservadanão-reservada
COLLATION_NAME não-reservadanão-reservada
COLLATION_SCHEMA não-reservadanão-reservada
COLUMNreservadareservadareservada
COLUMN_NAME não-reservadanão-reservada
COMMAND_FUNCTION não-reservadanão-reservada
COMMAND_FUNCTION_CODE não-reservada 
COMMENTnão-reservada  
COMMITnão-reservadareservadareservada
COMMITTEDnão-reservadanão-reservadanão-reservada
COMPLETION reservada 
CONDITION_NUMBER não-reservadanão-reservada
CONNECT reservadareservada
CONNECTION reservadareservada
CONNECTION_NAME não-reservadanão-reservada
CONSTRAINTreservadareservadareservada
CONSTRAINTSnão-reservadareservadareservada
CONSTRAINT_CATALOG não-reservadanão-reservada
CONSTRAINT_NAME não-reservadanão-reservada
CONSTRAINT_SCHEMA não-reservadanão-reservada
CONSTRUCTOR reservada 
CONTAINS não-reservada 
CONTINUE reservadareservada
CONVERSIONnão-reservada  
CONVERTnão-reservada (não pode ser função ou tipo)não-reservadareservada
COPYnão-reservada  
CORRESPONDING reservadareservada
COUNT não-reservadareservada
CREATEreservadareservadareservada
CREATEDBnão-reservada  
CREATEUSERnão-reservada  
CROSSreservada (pode ser função)reservadareservada
CUBE reservada 
CURRENT reservadareservada
CURRENT_DATEreservadareservadareservada
CURRENT_PATH reservada 
CURRENT_ROLE reservada 
CURRENT_TIMEreservadareservadareservada
CURRENT_TIMESTAMPreservadareservadareservada
CURRENT_USERreservadareservadareservada
CURSORnão-reservadareservadareservada
CURSOR_NAME não-reservadanão-reservada
CYCLEnão-reservadareservada 
DATA reservadanão-reservada
DATABASEnão-reservada  
DATE reservadareservada
DATETIME_INTERVAL_CODE não-reservadanão-reservada
DATETIME_INTERVAL_PRECISION não-reservadanão-reservada
DAYnão-reservadareservadareservada
DEALLOCATEnão-reservadareservadareservada
DECnão-reservada (não pode ser função ou tipo)reservadareservada
DECIMALnão-reservada (não pode ser função ou tipo)reservadareservada
DECLAREnão-reservadareservadareservada
DEFAULTreservadareservadareservada
DEFERRABLEreservadareservadareservada
DEFERREDnão-reservadareservadareservada
DEFINED não-reservada 
DEFINERnão-reservadanão-reservada 
DELETEnão-reservadareservadareservada
DELIMITERnão-reservada  
DELIMITERSnão-reservada  
DEPTH reservada 
DEREF reservada 
DESCreservadareservadareservada
DESCRIBE reservadareservada
DESCRIPTOR reservadareservada
DESTROY reservada 
DESTRUCTOR reservada 
DETERMINISTIC reservada 
DIAGNOSTICS reservadareservada
DICTIONARY reservada 
DISCONNECT reservadareservada
DISPATCH não-reservada 
DISTINCTreservadareservadareservada
DOreservada  
DOMAINnão-reservadareservadareservada
DOUBLEnão-reservadareservadareservada
DROPnão-reservadareservadareservada
DYNAMIC reservada 
DYNAMIC_FUNCTION não-reservadanão-reservada
DYNAMIC_FUNCTION_CODE não-reservada 
EACHnão-reservadareservada 
ELSEreservadareservadareservada
ENCODINGnão-reservada  
ENCRYPTEDnão-reservada  
ENDreservadareservadareservada
END-EXEC reservadareservada
EQUALS reservada 
ESCAPEnão-reservadareservadareservada
EVERY reservada 
EXCEPTreservadareservadareservada
EXCEPTION reservadareservada
EXCLUSIVEnão-reservada  
EXEC reservadareservada
EXECUTEnão-reservadareservadareservada
EXISTING não-reservada 
EXISTSnão-reservada (não pode ser função ou tipo)não-reservadareservada
EXPLAINnão-reservada  
EXTERNALnão-reservadareservadareservada
EXTRACTnão-reservada (não pode ser função ou tipo)não-reservadareservada
FALSEreservadareservadareservada
FETCHnão-reservadareservadareservada
FINAL não-reservada 
FIRST reservadareservada
FLOATnão-reservada (não pode ser função ou tipo)reservadareservada
FORreservadareservadareservada
FORCEnão-reservada  
FOREIGNreservadareservadareservada
FORTRAN não-reservadanão-reservada
FORWARDnão-reservada  
FOUND reservadareservada
FREE reservada 
FREEZEreservada (pode ser função)  
FROMreservadareservadareservada
FULLreservada (pode ser função)reservadareservada
FUNCTIONnão-reservadareservada 
G não-reservada 
GENERAL reservada 
GENERATED não-reservada 
GETnão-reservadareservadareservada
GLOBALnão-reservadareservadareservada
GO reservadareservada
GOTO reservadareservada
GRANTreservadareservadareservada
GRANTED não-reservada 
GROUPreservadareservadareservada
GROUPING reservada 
HANDLERnão-reservada  
HAVINGreservadareservadareservada
HIERARCHY não-reservada 
HOLD não-reservada 
HOST reservada 
HOURnão-reservadareservadareservada
IDENTITY reservadareservada
IGNORE reservada 
ILIKEreservada (pode ser função)  
IMMEDIATEnão-reservadareservadareservada
IMMUTABLEnão-reservada  
IMPLEMENTATION não-reservada 
IMPLICITnão-reservada  
INreservada (pode ser função)reservadareservada
INCREMENTnão-reservada  
INDEXnão-reservada  
INDICATOR reservadareservada
INFIX não-reservada 
INHERITSnão-reservada  
INITIALIZE reservada 
INITIALLYreservadareservadareservada
INNERreservada (pode ser função)reservadareservada
INOUTnão-reservadareservada 
INPUTnão-reservadareservadareservada
INSENSITIVEnão-reservadanão-reservadareservada
INSERTnão-reservadareservadareservada
INSTANCE não-reservada 
INSTANTIABLE não-reservada 
INSTEADnão-reservada  
INTnão-reservada (não pode ser função ou tipo)reservadareservada
INTEGERnão-reservada (não pode ser função ou tipo)reservadareservada
INTERSECTreservadareservadareservada
INTERVALnão-reservada (não pode ser função ou tipo)reservadareservada
INTOreservadareservadareservada
INVOKERnão-reservadanão-reservada 
ISreservada (pode ser função)reservadareservada
ISNULLreservada (pode ser função)  
ISOLATIONnão-reservadareservadareservada
ITERATE reservada 
JOINreservada (pode ser função)reservadareservada
K não-reservada 
KEYnão-reservadareservadareservada
KEY_MEMBER não-reservada 
KEY_TYPE não-reservada 
LANCOMPILERnão-reservada  
LANGUAGEnão-reservadareservadareservada
LARGE reservada 
LAST reservadareservada
LATERAL reservada 
LEADINGreservadareservadareservada
LEFTreservada (pode ser função)reservadareservada
LENGTH não-reservadanão-reservada
LESS reservada 
LEVELnão-reservadareservadareservada
LIKEreservada (pode ser função)reservadareservada
LIMITreservadareservada 
LISTENnão-reservada  
LOADnão-reservada  
LOCALnão-reservadareservadareservada
LOCALTIMEreservadareservada 
LOCALTIMESTAMPreservadareservada 
LOCATIONnão-reservada  
LOCATOR reservada 
LOCKnão-reservada  
LOWER não-reservadareservada
M não-reservada 
MAP reservada 
MATCHnão-reservadareservadareservada
MAX não-reservadareservada
MAXVALUEnão-reservada  
MESSAGE_LENGTH não-reservadanão-reservada
MESSAGE_OCTET_LENGTH não-reservadanão-reservada
MESSAGE_TEXT não-reservadanão-reservada
METHOD não-reservada 
MIN não-reservadareservada
MINUTEnão-reservadareservadareservada
MINVALUEnão-reservada  
MOD não-reservada 
MODEnão-reservada  
MODIFIES reservada 
MODIFY reservada 
MODULE reservadareservada
MONTHnão-reservadareservadareservada
MORE não-reservadanão-reservada
MOVEnão-reservada  
MUMPS não-reservadanão-reservada
NAME não-reservadanão-reservada
NAMESnão-reservadareservadareservada
NATIONALnão-reservadareservadareservada
NATURALreservada (pode ser função)reservadareservada
NCHARnão-reservada (não pode ser função ou tipo)reservadareservada
NCLOB reservada 
NEWreservadareservada 
NEXTnão-reservadareservadareservada
NOnão-reservadareservadareservada
NOCREATEDBnão-reservada  
NOCREATEUSERnão-reservada  
NONEnão-reservada (não pode ser função ou tipo)reservada 
NOTreservadareservadareservada
NOTHINGnão-reservada  
NOTIFYnão-reservada  
NOTNULLreservada (pode ser função)  
NULLreservadareservadareservada
NULLABLE não-reservadanão-reservada
NULLIFnão-reservada (não pode ser função ou tipo)não-reservadareservada
NUMBER não-reservadanão-reservada
NUMERICnão-reservada (não pode ser função ou tipo)reservadareservada
OBJECT reservada 
OCTET_LENGTH não-reservadareservada
OFnão-reservadareservadareservada
OFFreservadareservada 
OFFSETreservada  
OIDSnão-reservada  
OLDreservadareservada 
ONreservadareservadareservada
ONLYreservadareservadareservada
OPEN reservadareservada
OPERATION reservada 
OPERATORnão-reservada  
OPTIONnão-reservadareservadareservada
OPTIONS não-reservada 
ORreservadareservadareservada
ORDERreservadareservadareservada
ORDINALITY reservada 
OUTnão-reservadareservada 
OUTERreservada (pode ser função)reservadareservada
OUTPUT reservadareservada
OVERLAPSreservada (pode ser função)não-reservadareservada
OVERLAYnão-reservada (não pode ser função ou tipo)não-reservada 
OVERRIDING não-reservada 
OWNERnão-reservada  
PAD reservadareservada
PARAMETER reservada 
PARAMETERS reservada 
PARAMETER_MODE não-reservada 
PARAMETER_NAME não-reservada 
PARAMETER_ORDINAL_POSITION não-reservada 
PARAMETER_SPECIFIC_CATALOG não-reservada 
PARAMETER_SPECIFIC_NAME não-reservada 
PARAMETER_SPECIFIC_SCHEMA não-reservada 
PARTIALnão-reservadareservadareservada
PASCAL não-reservadanão-reservada
PASSWORDnão-reservada  
PATHnão-reservadareservada 
PENDANTnão-reservada  
PLACINGreservada  
PLI não-reservadanão-reservada
POSITIONnão-reservada (não pode ser função ou tipo)não-reservadareservada
POSTFIX reservada 
PRECISIONnão-reservadareservadareservada
PREFIX reservada 
PREORDER reservada 
PREPAREnão-reservadareservadareservada
PRESERVE reservadareservada
PRIMARYreservadareservadareservada
PRIORnão-reservadareservadareservada
PRIVILEGESnão-reservadareservadareservada
PROCEDURALnão-reservada  
PROCEDUREnão-reservadareservadareservada
PUBLIC reservadareservada
READnão-reservadareservadareservada
READS reservada 
REALnão-reservada (não pode ser função ou tipo)reservadareservada
RECHECKnão-reservada  
RECURSIVE reservada 
REF reservada 
REFERENCESreservadareservadareservada
REFERENCING reservada 
REINDEXnão-reservada  
RELATIVEnão-reservadareservadareservada
RENAMEnão-reservada  
REPEATABLE não-reservadanão-reservada
REPLACEnão-reservada  
RESETnão-reservada  
RESTRICTnão-reservadareservadareservada
RESULT reservada 
RETURN reservada 
RETURNED_LENGTH não-reservadanão-reservada
RETURNED_OCTET_LENGTH não-reservadanão-reservada
RETURNED_SQLSTATE não-reservadanão-reservada
RETURNSnão-reservadareservada 
REVOKEnão-reservadareservadareservada
RIGHTreservada (pode ser função)reservadareservada
ROLE reservada 
ROLLBACKnão-reservadareservadareservada
ROLLUP reservada 
ROUTINE reservada 
ROUTINE_CATALOG não-reservada 
ROUTINE_NAME não-reservada 
ROUTINE_SCHEMA não-reservada 
ROWnão-reservada (não pode ser função ou tipo)reservada 
ROWS reservadareservada
ROW_COUNT não-reservadanão-reservada
RULEnão-reservada  
SAVEPOINT reservada 
SCALE não-reservadanão-reservada
SCHEMAnão-reservadareservadareservada
SCHEMA_NAME não-reservadanão-reservada
SCOPE reservada 
SCROLLnão-reservadareservadareservada
SEARCH reservada 
SECONDnão-reservadareservadareservada
SECTION reservadareservada
SECURITYnão-reservadanão-reservada 
SELECTreservadareservadareservada
SELF não-reservada 
SENSITIVE não-reservada 
SEQUENCEnão-reservadareservada 
SERIALIZABLEnão-reservadanão-reservadanão-reservada
SERVER_NAME não-reservadanão-reservada
SESSIONnão-reservadareservadareservada
SESSION_USERreservadareservadareservada
SETnão-reservadareservadareservada
SETOFnão-reservada (não pode ser função ou tipo)  
SETS reservada 
SHAREnão-reservada  
SHOWnão-reservada  
SIMILARreservada (pode ser função)não-reservada 
SIMPLEnão-reservadanão-reservada 
SIZE reservadareservada
SMALLINTnão-reservada (não pode ser função ou tipo)reservadareservada
SOMEreservadareservadareservada
SOURCE não-reservada 
SPACE reservadareservada
SPECIFIC reservada 
SPECIFICTYPE reservada 
SPECIFIC_NAME não-reservada 
SQL reservadareservada
SQLCODE  reservada
SQLERROR  reservada
SQLEXCEPTION reservada 
SQLSTATE reservadareservada
SQLWARNING reservada 
STABLEnão-reservada  
STARTnão-reservadareservada 
STATE reservada 
STATEMENTnão-reservadareservada 
STATIC reservada 
STATISTICSnão-reservada  
STDINnão-reservada  
STDOUTnão-reservada  
STORAGEnão-reservada  
STRICTnão-reservada  
STRUCTURE reservada 
STYLE não-reservada 
SUBCLASS_ORIGIN não-reservadanão-reservada
SUBLIST não-reservada 
SUBSTRINGnão-reservada (não pode ser função ou tipo)não-reservadareservada
SUM não-reservadareservada
SYMMETRIC não-reservada 
SYSIDnão-reservada  
SYSTEM não-reservada 
SYSTEM_USER reservadareservada
TABLEreservadareservadareservada
TABLE_NAME não-reservadanão-reservada
TEMPnão-reservada  
TEMPLATEnão-reservada  
TEMPORARYnão-reservadareservadareservada
TERMINATE reservada 
THAN reservada 
THENreservadareservadareservada
TIMEnão-reservada (não pode ser função ou tipo)reservadareservada
TIMESTAMPnão-reservada (não pode ser função ou tipo)reservadareservada
TIMEZONE_HOUR reservadareservada
TIMEZONE_MINUTE reservadareservada
TOreservadareservadareservada
TOASTnão-reservada  
TRAILINGreservadareservadareservada
TRANSACTIONnão-reservadareservadareservada
TRANSACTIONS_COMMITTED não-reservada 
TRANSACTIONS_ROLLED_BACK não-reservada 
TRANSACTION_ACTIVE não-reservada 
TRANSFORM não-reservada 
TRANSFORMS não-reservada 
TRANSLATE não-reservadareservada
TRANSLATION reservadareservada
TREATnão-reservada (não pode ser função ou tipo)reservada 
TRIGGERnão-reservadareservada 
TRIGGER_CATALOG não-reservada 
TRIGGER_NAME não-reservada 
TRIGGER_SCHEMA não-reservada 
TRIMnão-reservada (não pode ser função ou tipo)não-reservadareservada
TRUEreservadareservadareservada
TRUNCATEnão-reservada  
TRUSTEDnão-reservada  
TYPEnão-reservadanão-reservadanão-reservada
UNCOMMITTED não-reservadanão-reservada
UNDER reservada 
UNENCRYPTEDnão-reservada  
UNIONreservadareservadareservada
UNIQUEreservadareservadareservada
UNKNOWNnão-reservadareservadareservada
UNLISTENnão-reservada  
UNNAMED não-reservadanão-reservada
UNNEST reservada 
UNTILnão-reservada  
UPDATEnão-reservadareservadareservada
UPPER não-reservadareservada
USAGEnão-reservadareservadareservada
USERreservadareservadareservada
USER_DEFINED_TYPE_CATALOG não-reservada 
USER_DEFINED_TYPE_NAME não-reservada 
USER_DEFINED_TYPE_SCHEMA não-reservada 
USINGreservadareservadareservada
VACUUMnão-reservada  
VALIDnão-reservada  
VALIDATORnão-reservada  
VALUE reservadareservada
VALUESnão-reservadareservadareservada
VARCHARnão-reservada (não pode ser função ou tipo)reservadareservada
VARIABLE reservada 
VARYINGnão-reservadareservadareservada
VERBOSEreservada (pode ser função)  
VERSIONnão-reservada  
VIEWnão-reservadareservadareservada
VOLATILEnão-reservada  
WHENreservadareservadareservada
WHENEVER reservadareservada
WHEREreservadareservadareservada
WITHnão-reservadareservadareservada
WITHOUTnão-reservadareservada 
WORKnão-reservadareservadareservada
WRITEnão-reservadareservadareservada
YEARnão-reservadareservadareservada
ZONEnão-reservadareservadareservada