付録 C. SQLキーワード

表C-1に標準SQLとPostgreSQL 7.4.2においてキーワードとされている全てのトークンを示します。 この背景となる情報は項4.1.1にあります。

SQLは予約未予約キーワードを区別します。 標準に従うと予約語のみが真のキーワードとなり、その予約語は識別子として使用することはできません。 未予約語はある特定の文脈で特別な意味を持ち、また、その他の文脈では識別子として使用することができます。 ほとんどの未予約語は、SQLで規定された組み込みのテーブル名と関数名で、未予約語の本質的な存在意義は、ある文脈においては前もって定義された意味があることを宣言することにあります。

PostgreSQLの構文解析の過程では、少々複雑になります。 複数の異なったトークンのクラスがあり、それらは識別子としてまったく使用できないものから、普通の識別子と比較して、パーサ内で特別なステータスを持たないものまであります。 (後者は一般的にはSQLで規定された関数です。) PostgreSQLでは予約語は完全に予約されたものではなく、列ラベルとして使用することが可能です(例: CHECKは予約語ですが、SELECT 55 AS CHECKのようにすることが可能です)。

表C-1PostgreSQLの列では、パーサがはっきりと理解しているキーワードで、なおかつ識別子が入る、ほとんど/すべての文脈で許可されるものを"未予約語"としています。 キーワードの中には、どちらかといえば未予約語であるが、関数名や型名として使用できないものもあり、そのように注記しています。 (このようなキーワードのほとんどは、特殊な構文をもった組み込み済みの関数やデータ型を表しています。 この関数または型は使用することができますが、ユーザによって定義し直すことはできません。) 一方、"予約語"とされるものは、"AS"における列ラベル名(または、ごくわずかな文脈)でのみ使用できるものを指します。 予約語の中には関数名として使用できるものもあります。 この情報も下表に示しています。

一般的な規則として、以下に示すキーワードのいずれかを識別子として含むコマンドで、おかしなパーサエラーが発生した場合、その識別子を引用符で括って問題が解決するかどうか確認して下さい。

表C-1を見る前に、PostgreSQLにおいて予約されていないキーワードが、その単語に関連する機能を実装していないということを意味していないことを理解しておいて下さい。言い替えると、キーワードがあるということが機能の存在を意味していないということです。

表 C-1. SQLキーワード

キーワードPostgreSQLSQL 99SQL 92
ABORT未予約  
ABS 未予約 
ABSOLUTE未予約予約予約
ACCESS未予約  
ACTION未予約予約予約
ADA 未予約未予約
ADD未予約予約予約
ADMIN 予約 
AFTER未予約予約 
AGGREGATE未予約予約 
ALIAS 予約 
ALL予約予約予約
ALLOCATE 予約予約
ALTER未予約予約予約
ANALYSE予約  
ANALYZE予約  
AND予約予約予約
ANY予約予約予約
ARE 予約予約
ARRAY予約予約 
AS予約予約予約
ASC予約予約予約
ASENSITIVE 未予約 
ASSERTION未予約予約予約
ASSIGNMENT未予約未予約 
ASYMMETRIC 未予約 
AT未予約予約予約
ATOMIC 未予約 
AUTHORIZATION予約(関数として使用できます)予約予約
AVG 未予約予約
BACKWARD未予約  
BEFORE未予約予約 
BEGIN未予約予約予約
BETWEEN予約(関数として使用できます)未予約予約
BIGINT未予約(型や関数として使用できません)  
BINARY予約(関数として使用できます)予約 
BIT未予約(型や関数として使用できません)予約予約
BITVAR 未予約 
BIT_LENGTH 未予約予約
BLOB 予約 
BOOLEAN未予約(型や関数として使用できません)予約 
BOTH予約予約予約
BREADTH 予約 
BY未予約予約予約
C 未予約未予約
CACHE未予約  
CALL 予約 
CALLED未予約未予約 
CARDINALITY 未予約 
CASCADE未予約予約予約
CASCADED 予約予約
CASE予約予約予約
CAST予約予約予約
CATALOG 予約予約
CATALOG_NAME 未予約未予約
CHAIN未予約未予約 
CHAR未予約(型や関数として使用できません)予約予約
CHARACTER未予約(型や関数として使用できません)予約予約
CHARACTERISTICS未予約  
CHARACTER_LENGTH 未予約予約
CHARACTER_SET_CATALOG 未予約未予約
CHARACTER_SET_NAME 未予約未予約
CHARACTER_SET_SCHEMA 未予約未予約
CHAR_LENGTH 未予約予約
CHECK予約予約予約
CHECKED 未予約 
CHECKPOINT未予約  
CLASS未予約予約 
CLASS_ORIGIN 未予約未予約
CLOB 予約 
CLOSE未予約予約予約
CLUSTER未予約  
COALESCE未予約(型や関数として使用できません)未予約予約
COBOL 未予約未予約
COLLATE予約予約予約
COLLATION 予約予約
COLLATION_CATALOG 未予約未予約
COLLATION_NAME 未予約未予約
COLLATION_SCHEMA 未予約未予約
COLUMN予約予約予約
COLUMN_NAME 未予約未予約
COMMAND_FUNCTION 未予約未予約
COMMAND_FUNCTION_CODE 未予約 
COMMENT未予約  
COMMIT未予約予約予約
COMMITTED未予約未予約未予約
COMPLETION 予約 
CONDITION_NUMBER 未予約未予約
CONNECT 予約予約
CONNECTION 予約予約
CONNECTION_NAME 未予約未予約
CONSTRAINT予約予約予約
CONSTRAINTS未予約予約予約
CONSTRAINT_CATALOG 未予約未予約
CONSTRAINT_NAME 未予約未予約
CONSTRAINT_SCHEMA 未予約未予約
CONSTRUCTOR 予約 
CONTAINS 未予約 
CONTINUE 予約予約
CONVERSION未予約  
CONVERT未予約(型や関数として使用できません)未予約予約
COPY未予約  
CORRESPONDING 予約予約
COUNT 未予約予約
CREATE予約予約予約
CREATEDB未予約  
CREATEUSER未予約  
CROSS予約(関数として使用できます)予約予約
CUBE 予約 
CURRENT 予約予約
CURRENT_DATE予約予約予約
CURRENT_PATH 予約 
CURRENT_ROLE 予約 
CURRENT_TIME予約予約予約
CURRENT_TIMESTAMP予約予約予約
CURRENT_USER予約予約予約
CURSOR未予約予約予約
CURSOR_NAME 未予約未予約
CYCLE未予約予約 
DATA 予約未予約
DATABASE未予約  
DATE 予約予約
DATETIME_INTERVAL_CODE 未予約未予約
DATETIME_INTERVAL_PRECISION 未予約未予約
DAY未予約予約予約
DEALLOCATE未予約予約予約
DEC未予約(型や関数として使用できません)予約予約
DECIMAL未予約(型や関数として使用できません)予約予約
DECLARE未予約予約予約
DEFAULT予約予約予約
DEFAULTS未予約  
DEFERRABLE予約予約予約
DEFERRED未予約予約予約
DEFINED 未予約 
DEFINER未予約未予約 
DELETE未予約予約予約
DELIMITER未予約  
DELIMITERS未予約  
DEPTH 予約 
DEREF 予約 
DESC予約予約予約
DESCRIBE 予約予約
DESCRIPTOR 予約予約
DESTROY 予約 
DESTRUCTOR 予約 
DETERMINISTIC 予約 
DIAGNOSTICS 予約予約
DICTIONARY 予約 
DISCONNECT 予約予約
DISPATCH 未予約 
DISTINCT予約予約予約
DO予約  
DOMAIN未予約予約予約
DOUBLE未予約予約予約
DROP未予約予約予約
DYNAMIC 予約 
DYNAMIC_FUNCTION 未予約未予約
DYNAMIC_FUNCTION_CODE 未予約 
EACH未予約予約 
ELSE予約予約予約
ENCODING未予約  
ENCRYPTED未予約  
END予約予約予約
END-EXEC 予約予約
EQUALS 予約 
ESCAPE未予約予約予約
EVERY 予約 
EXCEPT予約予約予約
EXCEPTION 予約予約
EXCLUDING未予約  
EXCLUSIVE未予約  
EXEC 予約予約
EXECUTE未予約予約予約
EXISTING 未予約 
EXISTS未予約(型や関数として使用できません)未予約予約
EXPLAIN未予約  
EXTERNAL未予約予約予約
EXTRACT未予約(型や関数として使用できません)未予約予約
FALSE予約予約予約
FETCH未予約予約予約
FINAL 未予約 
FIRST未予約予約予約
FLOAT未予約(型や関数として使用できません)予約予約
FOR予約予約予約
FORCE未予約  
FOREIGN予約予約予約
FORTRAN 未予約未予約
FORWARD未予約  
FOUND 予約予約
FREE 予約 
FREEZE予約(関数として使用できます)  
FROM予約予約予約
FULL予約(関数として使用できます)予約予約
FUNCTION未予約予約 
G 未予約 
GENERAL 予約 
GENERATED 未予約 
GET 予約予約
GLOBAL未予約予約予約
GO 予約予約
GOTO 予約予約
GRANT予約予約予約
GRANTED 未予約 
GROUP予約予約予約
GROUPING 予約 
HANDLER未予約  
HAVING予約予約予約
HIERARCHY 未予約 
HOLD未予約未予約 
HOST 予約 
HOUR未予約予約予約
IDENTITY 予約予約
IGNORE 予約 
ILIKE予約(関数として使用できます)  
IMMEDIATE未予約予約予約
IMMUTABLE未予約  
IMPLEMENTATION 未予約 
IMPLICIT未予約  
IN予約(関数として使用できます)予約予約
INCLUDING未予約  
INCREMENT未予約  
INDEX未予約  
INDICATOR 予約予約
INFIX 未予約 
INHERITS未予約  
INITIALIZE 予約 
INITIALLY予約予約予約
INNER予約(関数として使用できます)予約予約
INOUT未予約予約 
INPUT未予約予約予約
INSENSITIVE未予約未予約予約
INSERT未予約予約予約
INSTANCE 未予約 
INSTANTIABLE 未予約 
INSTEAD未予約  
INT未予約(型や関数として使用できません)予約予約
INTEGER未予約(型や関数として使用できません)予約予約
INTERSECT予約予約予約
INTERVAL未予約(型や関数として使用できません)予約予約
INTO予約予約予約
INVOKER未予約未予約 
IS予約(関数として使用できます)予約予約
ISNULL予約(関数として使用できます)  
ISOLATION未予約予約予約
ITERATE 予約 
JOIN予約(関数として使用できます)予約予約
K 未予約 
KEY未予約予約予約
KEY_MEMBER 未予約 
KEY_TYPE 未予約 
LANCOMPILER未予約  
LANGUAGE未予約予約予約
LARGE 予約 
LAST未予約予約予約
LATERAL 予約 
LEADING予約予約予約
LEFT予約(関数として使用できます)予約予約
LENGTH 未予約未予約
LESS 予約 
LEVEL未予約予約予約
LIKE予約(関数として使用できます)予約予約
LIMIT予約予約 
LISTEN未予約  
LOAD未予約  
LOCAL未予約予約予約
LOCALTIME予約予約 
LOCALTIMESTAMP予約予約 
LOCATION未予約  
LOCATOR 予約 
LOCK未予約  
LOWER 未予約予約
M 未予約 
MAP 予約 
MATCH未予約予約予約
MAX 未予約予約
MAXVALUE未予約  
MESSAGE_LENGTH 未予約未予約
MESSAGE_OCTET_LENGTH 未予約未予約
MESSAGE_TEXT 未予約未予約
METHOD 未予約 
MIN 未予約予約
MINUTE未予約予約予約
MINVALUE未予約  
MOD 未予約 
MODE未予約  
MODIFIES 予約 
MODIFY 予約 
MODULE 予約予約
MONTH未予約予約予約
MORE 未予約未予約
MOVE未予約  
MUMPS 未予約未予約
NAME 未予約未予約
NAMES未予約予約予約
NATIONAL未予約予約予約
NATURAL予約(関数として使用できます)予約予約
NCHAR未予約(型や関数として使用できません)予約予約
NCLOB 予約 
NEW予約予約 
NEXT未予約予約予約
NO未予約予約予約
NOCREATEDB未予約  
NOCREATEUSER未予約  
NONE未予約(型や関数として使用できません)予約 
NOT予約予約予約
NOTHING未予約  
NOTIFY未予約  
NOTNULL予約(関数として使用できます)  
NULL予約予約予約
NULLABLE 未予約未予約
NULLIF未予約(型や関数として使用できません)未予約予約
NUMBER 未予約未予約
NUMERIC未予約(型や関数として使用できません)予約予約
OBJECT 予約 
OCTET_LENGTH 未予約予約
OF未予約予約予約
OFF予約予約 
OFFSET予約  
OIDS未予約  
OLD予約予約 
ON予約予約予約
ONLY予約予約予約
OPEN 予約予約
OPERATION 予約 
OPERATOR未予約  
OPTION未予約予約予約
OPTIONS 未予約 
OR予約予約予約
ORDER予約予約予約
ORDINALITY 予約 
OUT未予約予約 
OUTER予約(関数として使用できます)予約予約
OUTPUT 予約予約
OVERLAPS予約(関数として使用できます)未予約予約
OVERLAY未予約(型や関数として使用できません)未予約 
OVERRIDING 未予約 
OWNER未予約  
PAD 予約予約
PARAMETER 予約 
PARAMETERS 予約 
PARAMETER_MODE 未予約 
PARAMETER_NAME 未予約 
PARAMETER_ORDINAL_POSITION 未予約 
PARAMETER_SPECIFIC_CATALOG 未予約 
PARAMETER_SPECIFIC_NAME 未予約 
PARAMETER_SPECIFIC_SCHEMA 未予約 
PARTIAL未予約予約予約
PASCAL 未予約未予約
PASSWORD未予約  
PATH未予約予約 
PENDANT未予約  
PLACING予約  
PLI 未予約未予約
POSITION未予約(型や関数として使用できません)未予約予約
POSTFIX 予約 
PRECISION未予約予約予約
PREFIX 予約 
PREORDER 予約 
PREPARE未予約予約予約
PRESERVE未予約予約予約
PRIMARY予約予約予約
PRIOR未予約予約予約
PRIVILEGES未予約予約予約
PROCEDURAL未予約  
PROCEDURE未予約予約予約
PUBLIC 予約予約
READ未予約予約予約
READS 予約 
REAL未予約(型や関数として使用できません)予約予約
RECHECK未予約  
RECURSIVE 予約 
REF 予約 
REFERENCES予約予約予約
REFERENCING 予約 
REINDEX未予約  
RELATIVE未予約予約予約
RENAME未予約  
REPEATABLE 未予約未予約
REPLACE未予約  
RESET未予約  
RESTART未予約  
RESTRICT未予約予約予約
RESULT 予約 
RETURN 予約 
RETURNED_LENGTH 未予約未予約
RETURNED_OCTET_LENGTH 未予約未予約
RETURNED_SQLSTATE 未予約未予約
RETURNS未予約予約 
REVOKE未予約予約予約
RIGHT予約(関数として使用できます)予約予約
ROLE 予約 
ROLLBACK未予約予約予約
ROLLUP 予約 
ROUTINE 予約 
ROUTINE_CATALOG 未予約 
ROUTINE_NAME 未予約 
ROUTINE_SCHEMA 未予約 
ROW未予約(型や関数として使用できません)予約 
ROWS未予約予約予約
ROW_COUNT 未予約未予約
RULE未予約  
SAVEPOINT 予約 
SCALE 未予約未予約
SCHEMA未予約予約予約
SCHEMA_NAME 未予約未予約
SCOPE 予約 
SCROLL未予約予約予約
SEARCH 予約 
SECOND未予約予約予約
SECTION 予約予約
SECURITY未予約未予約 
SELECT予約予約予約
SELF 未予約 
SENSITIVE 未予約 
SEQUENCE未予約予約 
SERIALIZABLE未予約未予約未予約
SERVER_NAME 未予約未予約
SESSION未予約予約予約
SESSION_USER予約予約予約
SET未予約予約予約
SETOF未予約(型や関数として使用できません)  
SETS 予約 
SHARE未予約  
SHOW未予約  
SIMILAR予約(関数として使用できます)未予約 
SIMPLE未予約未予約 
SIZE 予約予約
SMALLINT未予約(型や関数として使用できません)予約予約
SOME予約予約予約
SOURCE 未予約 
SPACE 予約予約
SPECIFIC 予約 
SPECIFICTYPE 予約 
SPECIFIC_NAME 未予約 
SQL 予約予約
SQLCODE  予約
SQLERROR  予約
SQLEXCEPTION 予約 
SQLSTATE 予約予約
SQLWARNING 予約 
STABLE未予約  
START未予約予約 
STATE 予約 
STATEMENT未予約予約 
STATIC 予約 
STATISTICS未予約  
STDIN未予約  
STDOUT未予約  
STORAGE未予約  
STRICT未予約  
STRUCTURE 予約 
STYLE 未予約 
SUBCLASS_ORIGIN 未予約未予約
SUBLIST 未予約 
SUBSTRING未予約(型や関数として使用できません)未予約予約
SUM 未予約予約
SYMMETRIC 未予約 
SYSID未予約  
SYSTEM 未予約 
SYSTEM_USER 予約予約
TABLE予約予約予約
TABLE_NAME 未予約未予約
TEMP未予約  
TEMPLATE未予約  
TEMPORARY未予約予約予約
TERMINATE 予約 
THAN 予約 
THEN予約予約予約
TIME未予約(型や関数として使用できません)予約予約
TIMESTAMP未予約(型や関数として使用できません)予約予約
TIMEZONE_HOUR 予約予約
TIMEZONE_MINUTE 予約予約
TO予約予約予約
TOAST未予約  
TRAILING予約予約予約
TRANSACTION未予約予約予約
TRANSACTIONS_COMMITTED 未予約 
TRANSACTIONS_ROLLED_BACK 未予約 
TRANSACTION_ACTIVE 未予約 
TRANSFORM 未予約 
TRANSFORMS 未予約 
TRANSLATE 未予約予約
TRANSLATION 予約予約
TREAT未予約(型や関数として使用できません)予約 
TRIGGER未予約予約 
TRIGGER_CATALOG 未予約 
TRIGGER_NAME 未予約 
TRIGGER_SCHEMA 未予約 
TRIM未予約(型や関数として使用できません)未予約予約
TRUE予約予約予約
TRUNCATE未予約  
TRUSTED未予約  
TYPE未予約未予約未予約
UNCOMMITTED 未予約未予約
UNDER 予約 
UNENCRYPTED未予約  
UNION予約予約予約
UNIQUE予約予約予約
UNKNOWN未予約予約予約
UNLISTEN未予約  
UNNAMED 未予約未予約
UNNEST 予約 
UNTIL未予約  
UPDATE未予約予約予約
UPPER 未予約予約
USAGE未予約予約予約
USER予約予約予約
USER_DEFINED_TYPE_CATALOG 未予約 
USER_DEFINED_TYPE_NAME 未予約 
USER_DEFINED_TYPE_SCHEMA 未予約 
USING予約予約予約
VACUUM未予約  
VALID未予約  
VALIDATOR未予約  
VALUE 予約予約
VALUES未予約予約予約
VARCHAR未予約(型や関数として使用できません)予約予約
VARIABLE 予約 
VARYING未予約予約予約
VERBOSE予約(関数として使用できます)  
VERSION未予約  
VIEW未予約予約予約
VOLATILE未予約  
WHEN予約予約予約
WHENEVER 予約予約
WHERE予約予約予約
WITH未予約予約予約
WITHOUT未予約予約 
WORK未予約予約予約
WRITE未予約予約予約
YEAR未予約予約予約
ZONE未予約予約予約