П.3.4. Ключевые слова и идентификаторы
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Ключевыми словами называются зарезервированные термины SQL, имеющие особый синтаксический смысл для сервера (INSERT, UPDATE, SELECT, DELETE и т.д.).

Каждая команда SQL начинается с ключевого слова, хотя многие ключевые слова сами по себе не являются законченными командами. Например, конструкция INSERT INTO является действительной командой SQL, а слово INTO является зарезервированным ключевым словом, которое не имеет смысла вне контекста.

Идентификаторы представляют собой имена переменных для ссылки на объекты базы данных. Имена идентификаторов произвольно назначаются при создании базы данных. В PostgreSQL идентификаторы могут связываться с базами данных, таблицами, полями, индексами, представлениями, последовательностями, правилами, триггерами и функциями.

 

Защищенные идентификаторы

Хотя обычно это и не требуется, идентификаторы могут заключаться в кавычки, указывающие на их буквальную интерпретацию. Например, просмотр всех полей таблицы с именем states обычно производится следующей простой командой:

SELECT * FROM states;

Аналогичного эффекта можно добиться, заключив идентификатор в кавычки:

SELECT * FROM “states”;

Применение кавычек к идентификаторам, записанным символами нижнего регистра, ни на что не влияет. Однако попытка защитить идентификатор stAtes в следующей команде приводит к неудаче:

SELECT * FROM “stAtes”;

Дело в том, что команда приказывает PostgreSQL найти таблицу с именем stAtes (вместо states). Другими словами, заключение идентификатора в кавычки требует, чтобы интерпретатор PostgreSQL интерпретировал его буквально.

Все незащищенные идентификаторы преобразуются к нижнему регистру. Любая смешанная комбинация символов разных регистров (stAtEs, STATES) при отсутствии кавычек перед выполнением команды автоматически приводится к виду states.

 

Обязательная защита идентификаторов

Идентификаторы должны обязательно заключаться в кавычки только в двух случаях: если идентификатор объекта базы данных совпадает с ключевым словом или в его имени присутствует хотя бы одно прописная буква. В любом из этих случаев идентификатор должен защищаться как при создании объекта, так и при последующих ссылках на него в командах SELECT, DELETE или UPDATE и т.д.

Если не заключить в кавычки идентификатор, совпадающий с ключевым словом, PostgreSQL выдаст сообщение об ошибке, поскольку идентификатор интерпретируется как ключевое слово.

 

Структура имен идентификаторов

Максимальная длина ключевых слов и идентификаторов PostgreSQL равна 31 символу. В процессе лексического разбора все ключевые слова и идентификаторы большей длины автоматически усекаются. Идентификаторы начинаются с любой буквы английского алфавита (az) или с символа подчеркивания, далее следует произвольное сочетание букв, цифр (0 – 9) и символов подчеркивания. Ключевые слова не могут начинаться или завершаться символом подчеркивания, но для имен идентификаторов это разрешено. Ни ключевые слова, ни идентификаторы не могут начинаться с цифры.

Заключение идентификатора в кавычки позволяет «преодолеть» правило игнорирования регистра символа. То же относится и к правилу, согласно которому идентификатор не может начинаться с цифры. Более того, имена таблиц могут содержать некоторые символы, которые обычно считаются недопустимыми (например, пробелы или амперсанды, хотя присутствие кавычек, разумеется, запрещено).

Защита идентификаторов при помощи кавычек выручает во многих нестандартных ситуациях, но чтобы команды SQL были стандартными и хорошо адаптировались для других платформ, следует стараться по возможности придерживаться стандартов ANSI/ISO.

 

П.3.5. Комментарии

 

Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Однострочные комментарии начинаются с двух дефисов (--) и либо находятся в отдельной строке, либо следуют за лексемами SQL (модуль лексического разбора PostgreSQL не считает комментарии лексемами, а все символы, следующие за последовательностью --, интерпретирует как пропуски).

SELECT ‘Test’ -- This can follow valid SQL tokens

         -- or be on a line of its own.

AS example;

Многострочные комментарии начинаются с последовательности /* и завершаются последовательностью */. Такой способ оформления комментариев хорошо знаком программистам С, но между интерпретатором PostgreSQL и компилятором С существует одно принципиальное различие: комментарии PostgreSQL могут быть вложенными. Иначе говоря, если внутри многострочного комментария имеется другой многострочный комментарий, то закрывающая последовательность */ внутреннего комментария не закрывает внешний комментарий.

SELECT ‘Multitest’ /* This comment extends across

        * numerous lines, and can be

        * /* nested safely */ */

AS example;

 

Дата: 2019-02-19, просмотров: 198.