Записывайте прописными буквами зарезервированные слова

Обоснование
Слова, набранные в верхнем регистре, воспринимаются как целое, а не как последовательность слогов или букв. Они притягивают взгляд и производят впечатление важности — именно на этом основано их применение в заголовках и вывесках. Типографы обозначают форму слова термином Боита, который описан в книге Сэнгера (1975). Представьте себе, что каждая буква окружена прямоугольной рамкой. В слове, набранном строчными буквами, эти рамки будут разной высоты и располагаться будут на разных уровнях (из-за надстрочных и подстрочных элементов букв). В результате, форма слова окажется “зубчатой”, словно оно построено из кирпичиков разного размера.
Форма слова, набранного прописными буквами, — всегда простой и ровный прямоугольник, который зрительно выделяется, даже будучи окруженным строчными буквами. Сравните выражения:

Select а, Ь, с from foobar where flob = 23;

и

SELECT a, b, с FROM Foobar WHERE flob = 23;

Видите, как легко выделить операторы при чтении? Еще быстрее код будет читаться при расположении каждой конструкции на отдельной строке:

SELECT a, b, с

FROM Foobar

WHERE flob = 23;

Впрочем, о правилах вертикального набора мы поговорим позже.

Исключения
Нет.

Ключевые слова бывают двух видов — зарезервированные и незарезервированные. Зарезервированные слова являются частью языка SQL Незарезервированные представляют собой имена метаданных, которые не приводят к сообщениям об ошибках в SQL-программе. В реальных приложениях они вряд ли будут применяться.

<ключевое слово ::= Зарезервированное слово> | <незарезервированное слово>

<незарезервированное слово> ::= ADA

| С | CATALOG_NAME | CHARACTER_SET_CATALOG | CHARACTER_SET_NAME

| CHARACTER_SET_SCHEMA | CLASS_ORIGIN | COBOL | COLLATI0N_CATALOG

| COLLATION.NAME | COLLATION_SCHEMA | COLUMN JIAME | COMMAND_FUNCTION

| COMMITTED

| CONDITION_NUMBER | CONNECTION_NAME | CONSTRAINT_CATALOG

| CONSTRAINT_NAME

| CONSTRAINT_SCHEMA | CURSOR_NAME

| DATA | DATETIME_INTERVAL_CODE

| DATETIME_INTERVAL_PRECISION | DYNAMIC_FUNCTION

| FORTRAN

| LENGTH

| MESSAGE_LENGTH | MESSAGE_OCTET_LENGTH | MESSAGE_TEXT | MORE | MUMPS

| NAME | NULLABLE | NUMBER

| PASCAL | PLI

| REPEATABLE | RETURNED_LENGTH | RETURNED_OCTET_LENGTH

| RETURNED_SQLSTATE

| ROW.COUNT

| SCALE | SCHEMA_NAME | SERIALIZABLE | SERVER_NAME | SUBCLASS_ORIGIN

| TABLE_NAME | TYPE

| UNCOMMITTED | UNNAMED

Зарезервированное слово> :: =

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 | EX1RACT

| FALSE | FETCH | FIRST | FLOAT | FOR | FOREIGN | FOUND | FROM

| FULL

| 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

| 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 | POSITION | PRECISION | PREPARE | PRESERVE | PRIMARY

| PRIOR | PRIVILEGES | PROCEDURE | PUBLIC

| READ | REAL | REFERENCES | RELATIVE | RESTRICT | REVOKE | RIGHT

| ROLLBACK | ROWS

| SCHEMA | SCROLL | SECOND | SECTION | SELECT | SESSION

| SESSION_USER | SET

| SIZE | SMALLINT | SOME | SPACE | SQL | SQLCODE | SQLERROR | SQLSTATE

| 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

Специфические зарезервированные слова могут встречаться в конкретных реализациях Их тоже нужно набирать в верхнем регистре

Наши рекомендации