プログラミング言語「予約語」というものがありますが、SQLのようなデータベース言語にもそれは存在します。
今回はこの予約語についてどのようなものがあるのかを一覧にして紹介していきます。
SQLにおける予約語

SQLでは”JIS X 3005-1990データベース言語SQL”として規格された予約語と”ISO 9075-1992 Database Language SQL”として規格された予約語があり、RDBで使用する予約語はJIS規格を基準にしています。
この予約語は予めSQL文で使用するキーワードとして登録されているため、表や列の名称として定義出来ない決まりとなっています。
但し一部例外として「”(二重引用符)」で囲むことで使用できるようになります。
SQL文の中で予約語を使用する必要がある場合には、この二重引用符を付帯させることを忘れないようにしてください。
二重引用符をつけ忘れた場合にはエラーが発生します。
予約語一覧

A
| ABOUT | ACCELERATED | ADD |
| AFTER | ALL | ALTER |
| AND | ANSI-PADDING | ANY |
| AS | ASC | ATOMIC |
| AVG |
B
| BEFORE | BEGIN | BETWEEN |
| BORDER | BY |
C
| CALL | CACHED_PROCEDURES | CASCADE |
| CASE | CAST | CHECK |
| CLOSE | COALESCE | COLLATE |
| COLUMN | COMMIT | COMMITTED |
| CONSTRAINT | CONVERT | COUNT |
| CREATE | CREATESP | CREATETAB |
| CREATEVIEW | CROSS | CS |
| CURDATE | CURRENT | CURSOR |
| CURTIME |
D
| DATA_PATH | DATABASE | DATETIMEMILLISECONDS |
| DBO | DESC | DBSEC_AUTHORIZATION |
| DCOMPRESS | DDF | DECIMALSEPARATORCOMMA |
| DECLARE | DEFAULT | DEFAULTCOLLATE |
| DELETE | DENY | DBSEC_AUTHENTICATION |
| DIAGNOSTICS | DICTIONARY | DICTIONARY_PATH |
| DISTINCT | DO | DROP |
| DSN |
E
| EACH | ELSE | ENCODING |
| END | ENFORCED | EX |
| EXCLUSIVE | EXEC | EXECUTE |
| EXISTING | EXISTS | EXPR |
F
| FETCH | FILES | FN |
| FOR | FOREIGN | FROM |
| FULL | FUNCTION |
G
| GLOBAL_QRYPLAN | GRANT | GROUP |
H
| HANDLER | HAVING |
I
| IDENTITY | IF | IN |
| INDEX | INNER | INOUT |
| INSERT | INTEGRITY | INTERNAL |
| INTO | IS | ISOLATION |
J
| JOIN |
K
| KEY |
L
| LEAVE | LEFT | LEGACYOWNERNAME |
| LEVEL | LIKE | LINKDUP |
| LOGIN | LOOP |
M
| MAX | MIN | MODE |
| MODIFIABLE | MODIFY |
N
| NEW | NEXT | NO |
| NO_REFERENTIAL_INTEGRITY | NORMAL | NOT |
| NOW | NULL |
O
| OF | OFF | OLD |
| ON | ONLY | OPEN |
| OPTINNERJOIN | OR | ORDER |
| OUT | OUTER | OWNER |
P
| PAGESIZE | PARTIAL | PASSWORD |
| PCOMPRESS | PRED | PRIMARY |
| PROCEDURE | PROCEDURES_CACHE | |
| PSQL_MOVE | PSQL_PHYSICAL | PSQL_POSITION |
| PUBLIC |
Q
| QRYPLAN | QRYPLANOUTPUT |
R
| READ | REFERENCES | REFERENCING |
| RELATIONAL | RELEASE | RENAME |
| REPEAT | REPEATABLE | REPLACE |
| RESTRICT | RETURN | RETURNS |
| REUSE_DDF | REVERSE | REVOKE |
| RIGHT | ROLLBACK | ROW |
| ROWCOUNT | ROWCOUNT2 |
S
| SAVEPOINT | SECURITY | SELECT |
| SERIALIZABLE | SESSIONID | SET |
| SIGNAL | SIZE | SPID |
| SQLSTATE | SSP_EXPR | SSP_PRED |
T
| T | TABLE | THEN |
| TO | TOP | TRANSACTION |
| TRIGGER | TRIGGERSTAMPMISC | TRUEBITCREATE |
| TRUENULLCREATE | TS |
U
| UNCOMMITTED | UNION | UNIQUE |
| UNIQUEIDENTIFIER | UNTIL | UPDATE |
| USER | USING |
V
| V1_METADATA | V2_METADATA | VALUES |
| VIEW |
W
| WHEN | WHERE | WHILE |
| WITH | WORK | WRITE |
使用を避けるべき語句

上記の他にも予約語とは若干異なりますが、SQL-92 および SQL-99 ANSI 標準で共通キーワードというものがあり、予約語と同じように使用を避ける必要があります。
但しやはりこちらも例外として「”(二重引用符)」で囲むことで使用できるようになります。
SQL文の中でこれらのワードを使用する必要がある場合には、この二重引用符を付帯させてください。
ユーザー定義名での使用を避ける語句
| ABSOLUTE | ACTION | ADD |
| ALL | ALLOCATE | ALTER |
| AND | ANY | ARE |
| AS | ASC | ASSERTION |
| AT | AUTHORIZATION | AVG |
| BEGIN | BETWEEN | BIT |
| BIT_LENGTH | BOTH | BY |
| CASCADE | CASCADED | CASE |
| CAST | CATALOG | CHAR |
| CHARACTER | CHAR_LENGTH | CHARACTER_LENGTH |
| CHECK | CLOSE | COALESCE |
| COLLATE | COLLATION | COLUMN |
| COMMIT | CONNECT | CONNECTION |
| CONSTRAINT | CONSTRAINTS | CONTINUE |
| CONVERT | CORRESPONDING | COUNT |
| CREATE | CROSS | CURRENT |
| CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP |
| CURRENT_USER | CURSOR | DATE |
| DAY | DEALLOCATE | DEC |
| DECIMAL | DECLARE | DEFAULT |
| DEFERRABLE | DEFERRED | DELETE |
| DESC | DESCRIBE | DESCRIPTOR |
| DIAGNOSTICS | DISCONNECT | DISTINCT |
| DOMAIN | DOUBLE | DROP |
| ELSE | END | END-EXEC |
| ESCAPE | EXCEPT | EXCEPTION |
| EXEC | EXECUTE | EXISTS |
| EXTERNAL | EXTRACT | FALSE |
| FETCH | FIRST | FLOAT |
| FOR | FOREIGN | FOUND |
| FROM | FULL | FUNCTION |
| GET | GLOBAL | GO |
| GOTO | GRANT | GROUP |
| HAVING | HOUR | IDENTITY |
| IMMEDIATE | IN | INDICATOR |
| INITIALLY | INNER | INPUT |
| INSENSITIVE | INSERT | INT |
| INTEGER | INTERSECT | INTERVAL |
| INTO | IS | ISOLATION |
| JOIN | KEY | LANGUAGE |
| LAST | LEADING | LEFT |
| LEVEL | LIKE | LOCAL |
| LOWER | MASK | MATCH |
| MAX | MIN | MINUTE |
| MODULE | MONTH | NAMES |
| NATIONAL | NATURAL | NCHAR |
| NEXT | NO | NOT |
| NULL | NULLIF | NUMERIC |
| OCTET_LENGTH | OF | ON |
| ONLY | OPEN | OPTION |
| OR | ORDER | OUTER |
| OUTPUT | OVERLAPS | PAD |
| PARTIAL | PASSWORD | POSITION |
| PRECISION | PREPARE | PRESERVE |
| PRIMARY | PRIOR | PRIVILEGES |
| PROCEDURE | PUBLIC | READ |
| REAL | REFERENCES | RELATIVE |
| RESTRICT | REVERSE | REVOKE |
| RIGHT | ROLLBACK | ROWS |
| SCHEMA | SCROLL | SECOND |
| SECTION | SELECT | SESSION |
| SESSION_USER | SET | SIZE |
| SMALLINT | SOME | SPACE |
| SQL | SQLCODE | SQLERROR |
| SQLSTATE | STDEV | SUBSTRING |
| SUM | SYSTEM_USER | TABLE |
| TEMPORARY | THEN | TIME |
| TIMESTAMP | TIMEZONE_HOUR | TIMEZONE_MINUTE |
| TO | TRAILING | TRANSACTION |
| TRANSLATE | TRANSLATION | TRIM |
| TRUE | UNION | UNIQUE |
| UNKNOWN | UPDATE | UPPER |
| USAGE | USER | USING |
| VALUE | VALUES | VARCHAR |
| VARYING | VIEW | WHEN |
| WHENEVER | WHERE | WITH |
| WORK | WRITE | YEAR |
| ZONE |
まとめ
今回は予約語についての説明とその一覧を記事にしてみましたがいかがでしたか?
予約語を全て覚えることはまず不可能かと思いますが、この記事をブックマークしてもらえれば、確認したいときや疑わしい時にすぐ予約語やキーワードを確認することが出来ます。
開発における効率化を図るためにも、是非ブックマークしておいてください。