- SQL-92
-
SQL-92 — третья версия языка запросов к базам данных SQL. В отличие от стандарта SQL-89, третья версия стала весьма существенным обновлением языка. За исключением некоторых мелких противоречий стандарт SQL-89 практически полностью совместим со стандартом SQL-92.
Содержание
История
Первый международный стандарт языка SQL был принят в 1989 г. (он получил соответствующее обозначение SQL/89), и подавляющее большинство СУБД начала 90-х объявили о поддержке этого стандарта. Однако у этого стандарта выявились недостатки, а именно: очень многие важные свойства языка стандарт устанавливает как определяемые в реализации или зависимые от нее. Это дало большой простор к расхождениям между различными реализациями SQL. Во-вторых, некоторые практически важные аспекты языка вообще не упоминаются в стандарте SQL/89.К ним прежде всего относятся правила встраивания языка SQL в язык программирования Си и так называемый динамический SQL. В результате производители СУБД реализовывали собственные механизмы, причем малосовместимые друг с другом. В результате сложилась ситуация, когда код одной СУБД, соответствующей стандарту SQL/89, оказался непереносим на другую СУБД, также соответствующую стандарту SQL/89[1].
В целях устранения недостатков стандарта SQL/89 в конце 1992 г. был принят новый международный стандарт языка SQL (SQL/92). Он также оказался не лишен недостатков, но все же является существенно более точным и полным, чем SQL/89. SQL/92 не только восполняет недостатки SQL/89, но содержит также много новых свойств.
Основные отличия от SQL/89
В новом стандарте появилась возможность использования типа данных символьных строк переменной длины (то есть при спецификации столбца указывается предельно допустимый размер хранимой строки в символах, а реально в базе данных хранится ровно столько символов, сколько их ввел пользователь), введены типы данных битовых строк постоянной и переменной длины (как они реально хранятся в базе данных в стандарте не определяется), стандартизованы типы данных для работы с датой и временем: DATE (дата), TIME (время) и INTERVAL (временной интервал)[2].
При создании схемы базы данных (впоследствии можно изменить) можно определить особенности национального набора символов, включая правила упорядочения, при этом могут определяться наборы символов, используемые как в хранимых текстовых строках, так и в идентификаторах[2].
В новом стандарте появилась возможность создавать хранимые и представляемые таблицы и задавать или удалять привилегии доступа при помощи операторов
CREATE TABLE,CREATE VIEW,GRANT,REVOKE) в любой момент времени в любой транзакции вне оператора определения схемы. Появились операторы уничтожения таблиц (DROPTABLEиDROP VIEW), которые также можно выполнять внутри любой транзакции (при наличии соответствующих привилегий). Также впервые определен операторALTER TABLE, позволяющий динамически изменять характеристики ранее созданной таблицы (в частности добавлять к ней новые столбцы)[2].Список нововведений
- SQL Agent
- Новые типы данных:
DATE,TIME,TIMESTAMP,INTERVAL, строковый типBIT, строковый типVARCHAR, а также строкиNATIONAL CHARACTER. - Поддержка дополнительных наборов символов помимо необходимых для представления SQL-запросов.
- Новые скалярные операции, например, конкатенация строк, математические операции с датой и временем, поддержка условий.
- Новые операции с наборами, например,
UNION JOIN,NATURAL JOIN, поддержка проверки различия в наборах, пересечение наборов. - Поддержка изменени определений схем за счет использования
ALTERиDROP. - Встроенная поддержка языков Си, Ада и MUMPS.
- Новые возможности пользовательских прав.
- Новый функционал проверки целостности данных, например, Уровни изолированности транзакций.
- Новые операции изменения типов данных «на лету» при помощи функции
CAST. - Динамические курсоры.
- Обратная и будущая совместимость с прочими стандартами SQL.
- Call Level Interface
Примечания
Ссылки
- The SQL-92 standard (англ.) (текст стандарта)
- BNF Grammar for ISO/IEC 9075:1992 — Database Language SQL (SQL-92) (англ.)
- Некоторые черты SQL/92 (рус.)
- SQL-92 (Справочное руководство) (рус.)
SQL Версии SQL-86 • SQL-89 • SQL-92 • SQL:1999 • SQL:2003 • SQL:2008 Ключевые слова Create • Delete • From • Having • Insert • Join • Merge • Null • Order by • Prepare • Select • Top • Truncate • Union • Update • Where Related Эдгар Кодд • Реляционная база данных Категории:- Стандарты языка SQL
- Декларативные языки программирования
- Появились в 1992 году
Wikimedia Foundation. 2010.