SQL: 1999 - SQL:1999

SQL: 1999 (также называемый SQL 3) был четвертой версией языка запросов к базе данных SQL . Он представил много новых функций, многие из которых потребовали пояснений в следующем SQL: 2003 . Между тем SQL: 1999 устарел.

Резюме

Стандартные документы ISO были опубликованы в период с 1999 по 2002 год в нескольких частях, первая из которых состояла из нескольких частей. В отличие от предыдущих изданий, в названии стандарта использовалось двоеточие вместо дефиса для согласования с названиями других стандартов ISO . Первая часть SQL: 1999 состояла из пяти частей:

Впоследствии были опубликованы еще три части, которые также считаются частью SQL: 1999:

Новые возможности

Типы данных

Логические типы данных

Стандарт SQL: 1999 требует логического типа, но многие коммерческие серверы SQL ( Oracle Database , IBM DB2 ) не поддерживают его как тип столбца, тип переменной или не допускают его в наборе результатов. Microsoft SQL Server - одна из немногих систем баз данных, которая должным образом поддерживает значения BOOLEAN с использованием своего типа данных «BIT». Каждые 1–8-битные поля занимают на диске один полный байт. MySQL интерпретирует "BOOLEAN" как синоним TINYINT (8-битное целое число со знаком). PostgreSQL предоставляет стандартный логический тип, соответствующий стандарту.

Определенные типы мощности, определяемые пользователем

Иногда называемые просто отдельными типами , они были введены в качестве дополнительной функции (S011), чтобы позволить существующим атомарным типам быть расширенными с отличительным значением для создания нового типа и, таким образом, позволяя механизму проверки типов обнаруживать некоторые логические ошибки, например, случайное добавление возраст до заработной платы. Например:

create type age as integer FINAL;
create type salary as integer FINAL;

создает два разных и несовместимых типа. Отдельные типы SQL используют эквивалентность имен, а не структурную эквивалентность, как определения типов в C. По-прежнему возможно выполнять совместимые операции с (столбцами или данными) отдельных типов, используя явный тип CAST .

Некоторые системы SQL поддерживают их. IBM DB2 - одна из тех, кто их поддерживает. База данных Oracle в настоящее время не поддерживает их, вместо этого рекомендуя имитировать их с помощью одноместного структурированного типа .

Структурированные пользовательские типы

Они составляют основу расширения объектно-реляционной базы данных в SQL: 1999. Они аналогичны классам в возражали-ориентированных языков программирования . SQL: 1999 допускает только одиночное наследование .

Общие табличные выражения и рекурсивные запросы

В SQL: 1999 добавлена ​​конструкция WITH [RECURSIVE], позволяющая указывать рекурсивные запросы, такие как транзитивное замыкание , на самом языке запросов; см. общие табличные выражения .

Некоторые возможности OLAP

GROUP BY была расширена за счет ROLLUP, CUBE и GROUPING SETS.

Ролевой контроль доступа

Полная поддержка RBAC через CREATE ROLE.

Ключевые слова

В SQL: 1999 появилось ключевое слово UNNEST.

Рекомендации

дальнейшее чтение