Воссоединение SQL в 1995 г. люди, проекты, политика

       

Функциональная и точечная нотации


Доступ к атрибутам определяемых пользователем типов может быть произведен с использованием одной из двух нотаций. Во многих ситуациях приложения могут выглядеть более естественно при использовании "точечной нотации":

WHERE emp.salary > 10000

а в других ситуациях может быть более естественной функциональная нотация:

WHERE salary (emp) > 10000

В SQL:1999 поддерживаются обе нотации; в действительности, они определяются как синтаксические вариации одного и того же -- если "emp" является сущностью хранения (например, столбцом или переменной) с объявленным типом некоторого структурного типа с атрибутом, именуемым "salary" … или существует функция с именем "salary" с единственным аргументом, тип данных которого является (соответствующим) структурному типу данных emp.

В этому случае методы являются немного менее гибкими, чем функции: Для вызовов методом может использоваться только точечная нотация -- по крайней мере, для целей указания особого аргумента. Если метод salary был бы методом, тесно связанным с типом, скажем, employee, который, в свою очередь, был бы объявленным типом столбца emp, то метод можно было бы вызвать только с использованием конструкции

emp.salary

В другом методе, скажем, give_raise, могут комбинироваться точечная и функциональная нотации:

emp.give_raise (amount)



Содержание раздела