SQL:1999
SQL:1999 (также называемый SQL 3) — четвертая версия SQL к базе данных языка запросов . В нем появилось много новых функций, многие из которых потребовали разъяснений в последующем SQL:2003 . Тем временем [ нужны разъяснения ] SQL:1999 устарел.
Краткое содержание
[ редактировать ]Стандартные документы ISO были опубликованы в период с 1999 по 2002 год в виде нескольких частей, первая из которых состояла из нескольких частей. В отличие от предыдущих изданий, в названии стандарта вместо дефиса использовалось двоеточие для соответствия названиям других стандартов ISO . Первая версия SQL:1999 состояла из пяти частей:
- SQL/Framework ISO/IEC 9075-1:1999
- SQL/Фундамент ISO/IEC 9075-2:1999
- SQL/CLI : обновленное определение расширения интерфейса уровня вызовов, первоначально опубликованное в 1995 году, также известное как CLI-95 ISO/IEC 9075-3:1999.
- SQL/PSM : обновленное определение расширения Persistent Stored Modules, первоначально опубликованное в 1996 году, также известное как PSM-96 ISO/IEC 9075-4:1999.
- SQL/привязки ISO/IEC 9075-5:1999
Впоследствии были опубликованы еще три части, также считавшиеся частью SQL:1999:
- SQL/MED Управление внешними данными (SQL:1999, часть 9) ISO/IEC 9075-9:2001
- SQL/OLB Привязки объектного языка (SQL:1999, часть 10) ISO/IEC 9075-10:2000
- SQL/JRT Подпрограммы и типы SQL с использованием языка программирования Java (SQL:1999, часть 13) ISO/IEC 9075-13:2002
Новые возможности
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( ноябрь 2012 г. ) |
Типы данных
[ редактировать ]Логические типы данных
[ редактировать ]Стандарт SQL:1999 требует логического типа. [1] но многие коммерческие серверы SQL ( база данных Oracle , IBM Db2 ) не поддерживают его как тип столбца, тип переменной и не допускают его в наборе результатов. Microsoft SQL Server — одна из немногих систем баз данных, которая правильно поддерживает логические значения, используя тип данных «BIT». [ нужна ссылка ] . Каждые 1–8-битные поля занимают на диске один полный байт. MySQL интерпретирует «BOOLEAN» как синоним TINYINT (8-битное целое число со знаком). [2] PostgreSQL предоставляет соответствующий стандарту логический тип. [3]
Различные определяемые пользователем типы мощности
[ редактировать ]Иногда называемые просто отдельными типами , они были представлены как дополнительная функция (S011), позволяющая расширять существующие атомарные типы с особым значением для создания нового типа и тем самым позволяя механизму проверки типов обнаруживать некоторые логические ошибки, например случайное добавление возраст к зарплате. Например:
create type age as integer FINAL;
create type salary as integer FINAL;
создает два разных и несовместимых типа. Различные типы SQL используют эквивалентность имен, а не структурную эквивалентность, как определения типов в C. Все еще возможно выполнять совместимые операции над (столбцами или данными) различных типов, используя явный тип. CAST
.
Немногие системы SQL поддерживают их. IBM Db2 — один из тех, кто их поддерживает. [4] База данных Oracle не поддерживала их с 2012 года, рекомендуя вместо этого эмулировать их с помощью одноместного структурированного типа . [5]
Структурированные пользовательские типы
[ редактировать ]Они составляют основу расширения объектно-реляционной базы данных в SQL:1999. Они аналогичны классам объектно -ориентированных языков программирования . SQL:1999 допускает только одиночное наследование .
Общие табличные выражения и рекурсивные запросы
[ редактировать ]В SQL:1999 добавлена конструкция With [RECURSIVE], позволяющая рекурсивные запросы, такие как транзитивное замыкание указывать , в самом языке запросов; см. распространенные табличные выражения .
Некоторые OLAP возможности
[ редактировать ]GROUP BY был расширен за счет ROLLUP, CUBE и GROUPING SETS.
Управление доступом на основе ролей
[ редактировать ]Полная поддержка RBAC через CREATE ROLE.
Ключевые слова
[ редактировать ]В SQL:1999 введено ключевое слово UNNEST. [6]
Ссылки
[ редактировать ]- ^ ISO / IEC 9075-2: 1999. Архивировано 24 декабря 2016 г. в Wayback Machine. разделе 4.6 Логические типы
- ^ «MySQL :: Справочное руководство MySQL 5.0 :: 11.4 Использование типов данных из других СУБД» . Dev.mysql.com. 09.01.2010. Архивировано из оригинала 7 февраля 2014 г. Проверено 30 января 2014 г.
- ^ «Документация PostgreSQL по логическому типу» . Архивировано из оригинала 9 марта 2018 г. Проверено 6 декабря 2023 г.
- ^ «Программное обеспечение IBM Information Management для Информационного центра решений z/OS» . Публикация.boulder.ibm.com . Проверено 30 января 2014 г.
- ^ «Соответствие Oracle базовому SQL:2003» . Документы.oracle.com. Архивировано из оригинала 2 декабря 2013 г. Проверено 30 января 2014 г.
- ^ Джонс, Ари; Стивенс, Райан К.; Плев, Рональд Р.; Гарретт, Роберт Ф.; Кригель, Алекс (2005). «Приложение B ANSI и ключевые слова поставщиков». Справочник программиста по функциям SQL . Джон Уайли и сыновья. п. 680. ИСБН 9780764598074 . Проверено 16 мая 2016 г.
Дальнейшее чтение
[ редактировать ]- Джим Мелтон ; Алан Р. Саймон (2002). SQL:1999: Понимание компонентов реляционного языка . Морган Кауфманн. ISBN 978-1-55860-456-8 .
- Джим Мелтон (2003). Advanced SQL, 1999: Понимание объектно-реляционных и других расширенных функций . Морган Кауфманн. ISBN 978-1-55860-677-7 .