Язык баз данных SQL/
Стандарт SQL/92 был принят в 1992 г. Он был разработан на основе предыдущего стандарта SQL/89 и предназначен для замены этого стандарта (как мы упоминали во введении курса, пока это не произошло в полном объеме). По сравнению со стандартом SQL/89, в стандарте SQL/92 специфицирован ряд новых возможностей. Тем не менее, в основном обеспечивается совместимость стандарта SQL/89 со стандартом SQL/92. Известные к моменту приема стандарта SQL/92 его несовместимости со стандартом SQL/89 специфицированы в приложении E (мы их обсудим отдельно в четвертой части курса).
В стандарте SQL/92 содержатся существенные расширения и уточнения возможностей стандарта SQL/89, а также введен ряд новых возможностей. Расширения и уточнения состоят в следующем:
- более точное определение средств прямого (интерактивного) вызова операторов SQL;
- улучшенные возможности диагностики, включающие поддержку нового параметра статуса (SQLSTATE), области диагностики и поддерживающих операторов.
Существенными новыми свойствами являются:
- поддержка дополнительных типов данных: DATE, TIME, TIMESTAMP, INTERVAL, битовая строка, символьные и битовые строки переменного размера, строки символов национального алфавита;
- поддержка наборов символов, не требуемых для самого языка SQL, и соответствующих средств сортировки;
- поддержка дополнительных скалярных операций, таких как операции конкатенации строк и выделения подстрок, операции с датами и временем, а также условные выражения;
- повышенная общность и ортогональность использования скалярных и табличных выражений запросов;
- расширенный набор операций над множествами (в частности, соединение объединением, естественное соединение, вычитание и пересечение множеств);
- возможность определения доменов в схеме;
- поддержка средств манипулирования схемой (к наиболее существенным относятся операторы DROP и ALTER);
- возможность связывания (в синтаксисе языка модулей и встроенного SQL) с языками Ада, Си и MUMPS;
- дополнительные возможности определения привилегий доступа;
- дополнительные возможности определения ссылочной целостности, включая ссылочные действия, разрешение использовать подзапросы в проверочных ограничениях, отдельно определяемые утверждения целостности, управление отложенным режимом проверки ограничений на уровне пользователя;
- определение информационной схемы базы данных;
- поддержка динамического выполнения операторов SQL;
- поддержка некоторых возможностей, требуемых для удаленного доступа к базам данных (особенно существенны операторы подключения к базе данных и средства задания квалифицированных имен схем);
- поддержка временных таблиц;
- поддержка уровней согласованности транзакций;
- поддержка преобразований типов данных (выражения CAST);
- поддержка прокручиваемых (scrolled) курсоров;
- требование наличия в реализации средства отслеживания соответствия стандарту используемых конструкций (flaggingcapability) для поддержки мобильности прикладных программ.