Вводный SQL
В этом разделе мы перечисляем некоторые дополнительные свойства полного SQL, которые отсутствуют во вводном SQL в дополнение к тем, которых нет в промежуточном SQL:
- идентификаторы длиннее, чем из 18 символов;
- малые буквы в идентификаторах;
- оператор SETSESSIONAUTHORIZATION;
- символьные строки переменного размера;
- определяемые в реализации наборы символов, включая строки национальных символов;
- все конструкции, связанные с datetime и interval;
- все, что связано с доменами;
- явные именованные ограничения;
- константы CURRENT_USER, SESSION_USER, SYSTEM_USER (однако USER поддерживается);
- CHARACTER_LENGHT, OCTET_LENGHT;
- функции SUBSTRING, TRIM, EXTRACT;
- операция конкатенации символьных строк;
- выражения с переключателем;
- оператор явного преобразования типов (CAST);
- раздел DEFAULT в операторах INSERT и UPDATE;
- явный оператор JOIN;
- операции EXCEPT и INTERSECT;
- элементы выборки в форме "R.*";
- условие UNIQUE;
- оператор DROPSCHEMA;
- оператор DROPTABLE;
- задание действия ONDELETE в определениях внешнего ключа;
- оператор ALTERTABLE;
- оператор DROPVIEW;
- оператор REVOKE;
- оператор SETTRANSACTION;
- динамический SQL;
- прокручиваемые курсоры;
- раздел FORUPDATE в определении курсора;
- преобразования между точными и приблизительными численными значениями при присваивании;
- информационная схема;
- оператор GETDIAGNOSTICS.
Вот список дополнительных ограничений:
- конструктор строки должен включать в точности один компонент, за исключением специального случая, когда конструктор строки является компонентом конструктора таблицы (в этом случае он должен быть единственным таким компонентом), и случая, когда конструктор строки используется для определения источника в операторе INSERT;
- табличное выражение в круглых скобках не может включать UNION;
- если в разделе FROM выражения выборки присутствует ссылка на представление, определение которого включает разделы GROUPBY или HAVING, то
(а) в этом разделе FROM не должны упоминаться другие таблицы;
(b) это выражение выборки не должно включать разделы WHERE, GROUPBY и HAVING;
(c) раздел SELECT этого выражения выборки не должен включать ссылок на какие-либо агрегатные функции;