付録 C. SQLキーワード

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

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

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

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

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

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

表 C-1. SQLキーワード

キーワードPostgreSQLSQL:2003SQL:1999SQL-92
A 未予約  
ABORT未予約   
ABS 予約未予約 
ABSOLUTE未予約未予約予約予約
ACCESS未予約   
ACTION未予約未予約予約予約
ADA 未予約未予約未予約
ADD未予約未予約予約予約
ADMIN 未予約予約 
AFTER未予約未予約予約 
AGGREGATE未予約 予約 
ALIAS  予約 
ALL予約予約予約予約
ALLOCATE 予約予約予約
ALSO未予約   
ALTER未予約予約予約予約
ALWAYS 未予約  
ANALYSE予約   
ANALYZE予約   
AND予約予約予約予約
ANY予約予約予約予約
ARE 予約予約予約
ARRAY予約予約予約 
AS予約予約予約予約
ASC予約未予約予約予約
ASENSITIVE 予約未予約 
ASSERTION未予約未予約予約予約
ASSIGNMENT未予約未予約未予約 
ASYMMETRIC 予約未予約 
AT未予約予約予約予約
ATOMIC 予約未予約 
ATTRIBUTE 未予約  
ATTRIBUTES 未予約  
AUTHORIZATION予約(関数として使用できます)予約予約予約
AVG 予約未予約予約
BACKWARD未予約   
BEFORE未予約未予約予約 
BEGIN未予約予約予約予約
BERNOULLI 未予約  
BETWEEN予約(関数として使用できます)予約未予約予約
BIGINT未予約(型や関数として使用できません)予約  
BINARY予約(関数として使用できます)予約予約 
BIT未予約(型や関数として使用できません) 予約予約
BITVAR  未予約 
BIT_LENGTH  未予約予約
BLOB 予約予約 
BOOLEAN未予約(型や関数として使用できません)予約予約 
BOTH予約予約予約予約
BREADTH 未予約予約 
BY未予約予約予約予約
C 未予約未予約未予約
CACHE未予約   
CALL 予約予約 
CALLED未予約予約未予約 
CARDINALITY 予約未予約 
CASCADE未予約未予約予約予約
CASCADED 予約予約予約
CASE予約予約予約予約
CAST予約予約予約予約
CATALOG 未予約予約予約
CATALOG_NAME 未予約未予約未予約
CEIL 予約  
CEILING 予約  
CHAIN未予約未予約未予約 
CHAR未予約(型や関数として使用できません)予約予約予約
CHARACTER未予約(型や関数として使用できません)予約予約予約
CHARACTERISTICS未予約未予約  
CHARACTERS 未予約  
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 未予約未予約未予約
COLLECT 予約  
COLUMN予約予約予約予約
COLUMN_NAME 未予約未予約未予約
COMMAND_FUNCTION 未予約未予約未予約
COMMAND_FUNCTION_CODE 未予約未予約 
COMMENT未予約   
COMMIT未予約予約予約予約
COMMITTED未予約未予約未予約未予約
COMPLETION  予約 
CONDITION 予約  
CONDITION_NUMBER 未予約未予約未予約
CONNECT 予約予約予約
CONNECTION 未予約予約予約
CONNECTION_NAME 未予約未予約未予約
CONSTRAINT予約予約予約予約
CONSTRAINTS未予約未予約予約予約
CONSTRAINT_CATALOG 未予約未予約未予約
CONSTRAINT_NAME 未予約未予約未予約
CONSTRAINT_SCHEMA 未予約未予約未予約
CONSTRUCTOR 未予約予約 
CONTAINS 未予約未予約 
CONTINUE 未予約予約予約
CONVERSION未予約   
CONVERT未予約(型や関数として使用できません)予約未予約予約
COPY未予約   
CORR 予約  
CORRESPONDING 予約予約予約
COUNT 予約未予約予約
COVAR_POP 予約  
COVAR_SAMP 予約  
CREATE予約予約予約予約
CREATEDB未予約   
CREATEUSER未予約   
CROSS予約(関数として使用できます)予約予約予約
CSV未予約   
CUBE 予約予約 
CUME_DIST 予約  
CURRENT 予約予約予約
CURRENT_DATE予約予約予約予約
CURRENT_DEFAULT_TRANSFORM_GROUP 予約  
CURRENT_PATH 予約予約 
CURRENT_ROLE 予約予約 
CURRENT_TIME予約予約予約予約
CURRENT_TIMESTAMP予約予約予約予約
CURRENT_TRANSFORM_GROUP_FOR_TYPE 予約  
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未予約未予約未予約 
DEGREE 未予約  
DELETE未予約予約予約予約
DELIMITER未予約   
DELIMITERS未予約   
DENSE_RANK 予約  
DEPTH 未予約予約 
DEREF 予約予約 
DERIVED 未予約  
DESC予約未予約予約予約
DESCRIBE 予約予約予約
DESCRIPTOR 未予約予約予約
DESTROY  予約 
DESTRUCTOR  予約 
DETERMINISTIC 予約予約 
DIAGNOSTICS 未予約予約予約
DICTIONARY  予約 
DISCONNECT 予約予約予約
DISPATCH 未予約未予約 
DISTINCT予約予約予約予約
DO予約   
DOMAIN未予約未予約予約予約
DOUBLE未予約予約予約予約
DROP未予約予約予約予約
DYNAMIC 予約予約 
DYNAMIC_FUNCTION 未予約未予約未予約
DYNAMIC_FUNCTION_CODE 未予約未予約 
EACH未予約予約予約 
ELEMENT 予約  
ELSE予約予約予約予約
ENCODING未予約   
ENCRYPTED未予約   
END予約予約予約予約
END-EXEC 予約予約予約
EQUALS 未予約予約 
ESCAPE未予約予約予約予約
EVERY 予約予約 
EXCEPT予約予約予約予約
EXCEPTION 未予約予約予約
EXCLUDE 未予約  
EXCLUDING未予約未予約  
EXCLUSIVE未予約   
EXEC 予約予約予約
EXECUTE未予約予約予約予約
EXISTING  未予約 
EXISTS未予約(型や関数として使用できません)予約未予約予約
EXP 予約  
EXPLAIN未予約   
EXTERNAL未予約予約予約予約
EXTRACT未予約(型や関数として使用できません)予約未予約予約
FALSE予約予約予約予約
FETCH未予約予約予約予約
FILTER 予約  
FINAL 未予約未予約 
FIRST未予約未予約予約予約
FLOAT未予約(型や関数として使用できません)予約予約予約
FLOOR 予約  
FOLLOWING 未予約  
FOR予約予約予約予約
FORCE未予約   
FOREIGN予約予約予約予約
FORTRAN 未予約未予約未予約
FORWARD未予約   
FOUND 未予約予約予約
FREE 予約予約 
FREEZE予約(関数として使用できます)   
FROM予約予約予約予約
FULL予約(関数として使用できます)予約予約予約
FUNCTION未予約予約予約 
FUSION 予約  
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予約予約予約予約
INTERSECTION 予約  
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未予約   
LN 予約  
LOAD未予約   
LOCAL未予約予約予約予約
LOCALTIME予約予約予約 
LOCALTIMESTAMP予約予約予約 
LOCATION未予約   
LOCATOR 未予約予約 
LOCK未予約   
LOWER 予約未予約予約
M 未予約未予約 
MAP 未予約予約 
MATCH未予約予約予約予約
MATCHED 未予約  
MAX 予約未予約予約
MAXVALUE未予約未予約  
MEMBER 予約  
MERGE 予約  
MESSAGE_LENGTH 未予約未予約未予約
MESSAGE_OCTET_LENGTH 未予約未予約未予約
MESSAGE_TEXT 未予約未予約未予約
METHOD 予約未予約 
MIN 予約未予約予約
MINUTE未予約予約予約予約
MINVALUE未予約未予約  
MOD 予約未予約 
MODE未予約   
MODIFIES 予約予約 
MODIFY  予約 
MODULE 予約予約予約
MONTH未予約予約予約予約
MORE 未予約未予約未予約
MOVE未予約   
MULTISET 予約  
MUMPS 未予約未予約未予約
NAME 未予約未予約未予約
NAMES未予約未予約予約予約
NATIONAL未予約(型や関数として使用できません)予約予約予約
NATURAL予約(関数として使用できます)予約予約予約
NCHAR未予約(型や関数として使用できません)予約予約予約
NCLOB 予約予約 
NESTING 未予約  
NEW予約予約予約 
NEXT未予約未予約予約予約
NO未予約予約予約予約
NOCREATEDB未予約   
NOCREATEUSER未予約   
NONE未予約(型や関数として使用できません)予約予約 
NORMALIZE 予約  
NORMALIZED 未予約  
NOT予約予約予約予約
NOTHING未予約   
NOTIFY未予約   
NOTNULL予約(関数として使用できます)   
NOWAIT未予約   
NULL予約予約予約予約
NULLABLE 未予約未予約未予約
NULLIF未予約(型や関数として使用できません)予約未予約予約
NULLS 未予約  
NUMBER 未予約未予約未予約
NUMERIC未予約(型や関数として使用できません)予約予約予約
OBJECT未予約未予約予約 
OCTETS 未予約  
OCTET_LENGTH 予約未予約予約
OF未予約予約予約予約
OFF予約 予約 
OFFSET予約   
OIDS未予約   
OLD予約予約予約 
ON予約予約予約予約
ONLY予約予約予約予約
OPEN 予約予約予約
OPERATION  予約 
OPERATOR未予約   
OPTION未予約未予約予約予約
OPTIONS 未予約未予約 
OR予約予約予約予約
ORDER予約予約予約予約
ORDERING 未予約  
ORDINALITY 未予約予約 
OTHERS 未予約  
OUT未予約(型や関数として使用できません)予約予約 
OUTER予約(関数として使用できます)予約予約予約
OUTPUT 未予約予約予約
OVER 予約  
OVERLAPS予約(関数として使用できます)予約未予約予約
OVERLAYnon-reserved (cannot be function or type)予約未予約 
OVERRIDING 未予約未予約 
OWNER未予約   
PAD 未予約予約予約
PARAMETER 予約予約 
PARAMETERS  予約 
PARAMETER_MODE 未予約未予約 
PARAMETER_NAME 未予約未予約 
PARAMETER_ORDINAL_POSITION 未予約未予約 
PARAMETER_SPECIFIC_CATALOG 未予約未予約 
PARAMETER_SPECIFIC_NAME 未予約未予約 
PARAMETER_SPECIFIC_SCHEMA 未予約未予約 
PARTIAL未予約未予約予約予約
PARTITION 予約  
PASCAL 未予約未予約未予約
PASSWORD未予約   
PATH 未予約予約 
PERCENTILE_CONT 予約  
PERCENTILE_DISC 予約  
PERCENT_RANK 予約  
PLACING予約未予約  
PLI 未予約未予約未予約
POSITION未予約(型や関数として使用できません)予約未予約予約
POSTFIX  予約 
POWER 予約  
PRECEDING 未予約  
PRECISION未予約(型や関数として使用できません)予約予約予約
PREFIX  予約 
PREORDER  予約 
PREPARE未予約予約予約予約
PRESERVE未予約未予約予約予約
PRIMARY予約予約予約予約
PRIOR未予約未予約予約予約
PRIVILEGES未予約未予約予約予約
PROCEDURAL未予約   
PROCEDURE未予約予約予約予約
PUBLIC 未予約予約予約
QUOTE未予約   
RANGE 予約  
RANK 予約  
READ未予約未予約予約予約
READS 予約予約 
REAL未予約(型や関数として使用できません)予約予約予約
RECHECK未予約   
RECURSIVE 予約予約 
REF 予約予約 
REFERENCES予約予約予約予約
REFERENCING 予約予約 
REGR_AVGX 予約  
REGR_AVGY 予約  
REGR_COUNT 予約  
REGR_INTERCEPT 予約  
REGR_R2 予約  
REGR_SLOPE 予約  
REGR_SXX 予約  
REGR_SXY 予約  
REGR_SYY 予約  
REINDEX未予約   
RELATIVE未予約未予約予約予約
RELEASE未予約予約  
RENAME未予約   
REPEATABLE未予約未予約未予約未予約
REPLACE未予約   
RESET未予約   
RESTART未予約未予約  
RESTRICT未予約未予約予約予約
RESULT 予約予約 
RETURN 予約予約 
RETURNED_CARDINALITY 未予約  
RETURNED_LENGTH 未予約未予約未予約
RETURNED_OCTET_LENGTH 未予約未予約未予約
RETURNED_SQLSTATE 未予約未予約未予約
RETURNS未予約予約予約 
REVOKE未予約予約予約予約
RIGHT予約(関数として使用できます)予約予約予約
ROLE 未予約予約 
ROLLBACK未予約予約予約予約
ROLLUP 予約予約 
ROUTINE 未予約予約 
ROUTINE_CATALOG 未予約未予約 
ROUTINE_NAME 未予約未予約 
ROUTINE_SCHEMA 未予約未予約 
ROW未予約(型や関数として使用できません)予約予約 
ROWS未予約予約予約予約
ROW_COUNT 未予約未予約未予約
ROW_NUMBER 予約  
RULE未予約   
SAVEPOINT未予約予約予約 
SCALE 未予約未予約未予約
SCHEMA未予約未予約予約予約
SCHEMA_NAME 未予約未予約未予約
SCOPE 予約予約 
SCOPE_CATALOG 未予約  
SCOPE_NAME 未予約  
SCOPE_SCHEMA 未予約  
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 予約予約 
SQRT 予約  
STABLE未予約   
START未予約予約予約 
STATE 未予約予約 
STATEMENT未予約未予約予約 
STATIC 予約予約 
STATISTICS未予約   
STDDEV_POP 予約  
STDDEV_SAMP 予約  
STDIN未予約   
STDOUT未予約   
STORAGE未予約   
STRICT未予約   
STRUCTURE 未予約予約 
STYLE 未予約未予約 
SUBCLASS_ORIGIN 未予約未予約未予約
SUBLIST  未予約 
SUBMULTISET 予約  
SUBSTRING未予約(型や関数として使用できません)予約未予約予約
SUM 予約未予約予約
SYMMETRIC 予約未予約 
SYSID未予約   
SYSTEM 予約未予約 
SYSTEM_USER 予約予約予約
TABLE予約予約予約予約
TABLESAMPLE 予約  
TABLESPACE未予約   
TABLE_NAME 未予約未予約未予約
TEMP未予約   
TEMPLATE未予約   
TEMPORARY未予約未予約予約予約
TERMINATE  予約 
THAN  予約 
THEN予約予約予約予約
TIES 未予約  
TIME未予約(型や関数として使用できません)予約予約予約
TIMESTAMP未予約(型や関数として使用できません)予約予約予約
TIMEZONE_HOUR 予約予約予約
TIMEZONE_MINUTE 予約予約予約
TO予約予約予約予約
TOAST未予約   
TOP_LEVEL_COUNT 未予約  
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未予約未予約未予約未予約
UESCAPE 予約  
UNBOUNDED 未予約  
UNCOMMITTED未予約未予約未予約未予約
UNDER 未予約予約 
UNENCRYPTED未予約   
UNION予約予約予約予約
UNIQUE予約予約予約予約
UNKNOWN未予約予約予約予約
UNLISTEN未予約   
UNNAMED 未予約未予約未予約
UNNEST 予約予約 
UNTIL未予約   
UPDATE未予約予約予約予約
UPPER 予約未予約予約
USAGE未予約未予約予約予約
USER予約予約予約予約
USER_DEFINED_TYPE_CATALOG 未予約未予約 
USER_DEFINED_TYPE_CODE 未予約  
USER_DEFINED_TYPE_NAME 未予約未予約 
USER_DEFINED_TYPE_SCHEMA 未予約未予約 
USING予約予約予約予約
VACUUM未予約   
VALID未予約   
VALIDATOR未予約   
VALUE 予約予約予約
VALUES未予約予約予約予約
VARCHAR未予約(型や関数として使用できません)予約予約予約
VARIABLE  予約 
VARYING未予約予約予約予約
VAR_POP 予約  
VAR_SAMP 予約  
VERBOSE予約(関数として使用できます)   
VIEW未予約未予約予約予約
VOLATILE未予約   
WHEN予約予約予約予約
WHENEVER 予約予約予約
WHERE予約予約予約予約
WIDTH_BUCKET 予約  
WINDOW 予約  
WITH未予約予約予約予約
WITHIN 予約  
WITHOUT未予約予約予約 
WORK未予約未予約予約予約
WRITE未予約未予約予約予約
YEAR未予約 予約予約
ZONE未予約未予約予約予約