SQL: 1999 - SQL:1999
SQL: 1999 (также называемый SQL 3) был четвертой версией SQL база данных язык запросов. В нем появилось много новых функций, многие из которых потребовали пояснений в последующих SQL: 2003. А пока SQL: 1999 не рекомендуется.
Резюме
Стандартные документы ISO были опубликованы в период с 1999 по 2002 год в нескольких частях, первая из которых состояла из нескольких частей. В отличие от предыдущих редакций, в названии стандарта использовалось двоеточие вместо дефиса для согласования с названиями других ISO стандарты. Первая часть SQL: 1999 состояла из пяти частей:
- SQL / Framework ИСО / МЭК 9075-1: 1999
- SQL / Foundation ИСО / МЭК 9075-2: 1999
- SQL / CLI : обновленное определение интерфейса уровня вызовов внутреннего абонента, первоначально опубликованное в 1995 году, также известное как CLI-95 ИСО / МЭК 9075-3: 1999
- SQL / PSM : обновленное определение расширения Persistent Stored Modules, первоначально опубликованное в 1996 году, также известное как PSM-96. ИСО / МЭК 9075-4: 1999
- SQL / привязки ИСО / МЭК 9075-5: 1999
Впоследствии были опубликованы еще три части, которые также считаются частью SQL: 1999:
- SQL / MED Управление внешними данными (SQL: 1999 часть 9) ИСО / МЭК 9075-9: 2001
- SQL / OLB Привязки объектного языка (SQL: 1999, часть 10) ИСО / МЭК 9075-10: 2000
- SQL / JRT Подпрограммы и типы SQL с использованием языка программирования Java (SQL: 1999, часть 13) ИСО / МЭК 9075-13: 2002
Новые возможности
Эта секция нуждается в расширении. Вы можете помочь добавляя к этому. (Ноябрь 2012 г.) |
Типы данных
Логические типы данных
Стандарт SQL: 1999 требует логического типа,[1] но многие коммерческие SQL-серверы (База данных Oracle, IBM DB2 ) не поддерживают его как тип столбца, тип переменной и не допускают в наборе результатов. Microsoft SQL Server - одна из немногих систем баз данных, которая должным образом поддерживает значения BOOLEAN с использованием своего типа данных "BIT".[нужна цитата ]. Каждые 1–8-битные поля занимают на диске один полный байт. MySQL интерпретирует "BOOLEAN" как синоним TINYINT (8-битовое целое число со знаком).[2] PostgreSQL предоставляет стандартный соответствующий логический тип [3]
Определенные типы мощности, определяемые пользователем
Иногда называют просто отдельные типы, они были введены как дополнительная функция (S011), чтобы позволить существующим атомарным типам быть расширенными с отличительным значением для создания нового типа и, таким образом, позволяя механизму проверки типа обнаруживать некоторые логические ошибки, например случайно добавили возраст к зарплате. Например:
Создайте тип возраст в качестве целое число ФИНАЛЬНЫЙ;Создайте тип зарплата в качестве целое число ФИНАЛЬНЫЙ;
создает два разных и несовместимых типа. Различные типы SQL используют эквивалентность названий нет структурная эквивалентность подобно typedefs в C. По-прежнему возможно выполнять совместимые операции с (столбцами или данными) отдельных типов, используя явный тип В РОЛЯХ
.
Некоторые системы SQL поддерживают их. IBM DB2 один из тех, кто их поддерживает.[4] База данных Oracle в настоящее время не поддерживает их, рекомендуя вместо этого подражать им в одном месте структурированный тип.[5]
Структурированные пользовательские типы
Это основа объектно-реляционная база данных расширение в SQL: 1999. Они аналогичны классы в объектно-ориентированные языки программирования. SQL: 1999 позволяет только одинарное наследование.
Общие табличные выражения и рекурсивные запросы
В SQL: 1999 добавлена конструкция WITH [RECURSIVE], разрешающая рекурсивные запросы, например переходное закрытие, указывается в самом языке запросов; видеть общие табличные выражения.
Некоторые возможности OLAP
GROUP BY была расширена за счет ROLLUP, CUBE и GROUPING SETS.
Контроль доступа на основе ролей
Полная поддержка RBAC через CREATE ROLE.
Ключевые слова
В SQL: 1999 появилось ключевое слово UNNEST.[6]
Рекомендации
- ^ ИСО / МЭК 9075-2: 1999 раздел 4.6 Логические типы
- ^ "Справочное руководство MySQL :: MySQL 5.0 :: 11.4 Использование типов данных из других механизмов баз данных". Dev.mysql.com. 2010-01-09. Получено 2014-01-30.
- ^ Документация PostgreSQL о логическом типе
- ^ "Информационный центр IBM Information Management Software для z / OS Solutions". Publib.boulder.ibm.com. Получено 2014-01-30.
- ^ «Соответствие Oracle Core SQL: 2003». Docs.oracle.com. Получено 2014-01-30.
- ^ Джонс, Ари; Стивенс, Райан К .; Plew, Ronald R .; Гаррет, Роберт Ф .; Кригель, Алекс (2005). «Приложение B Ключевые слова ANSI и поставщиков». Справочник программиста по функциям SQL. Джон Вили и сыновья. п. 680. ISBN 9780764598074. Получено 2016-05-16.
дальнейшее чтение
- Джим Мелтон; Алан Р. Саймон (2002). SQL: 1999: понимание компонентов реляционного языка. Морган Кауфманн. ISBN 978-1-55860-456-8.
- Джим Мелтон (2003). Advanced SQL, 1999: понимание объектно-реляционных и других расширенных функций. Морган Кауфманн. ISBN 978-1-55860-677-7.