SQL:1999
З Вікіпедії, вільної енциклопедії
SQL:1999 (також звана SQL 3) була четвертою редакцією мови запитів до баз даних SQL. Вона ввела велику кількість нових можливостей, багато з яких вимагали уточнення у наступній версії SQL:2003. Наразі SQL:1999 є застарілою.
Огляд
Документи стандарту ISO було опубліковано між 1999 та 2002 роками в декілька етапів, перший з яких складався з кількох частин. На відміну від попередніх редакцій, у назві стандарту було використано двокрапку замість дефісу задля узгодження з назвами інших стандартів ISO. Перший етап SQL:1999 мав п'ять частин:
- SQL/Framework[1]
- SQL/Foundation[2]
- SQL/CLI[en]: оновлене визначення розширення Call Level Interface, спочатку опублікованого 1995 року і також відомого як CLI-95[3]
- SQL/PSM: оновлене визначення розширення Persistent Stored Modules, спочатку опублікованого 1996 року і також відомого як PSM-96[4]
- SQL/Bindings[5]
Наступні три частини, що також розглядаються як частини SQL:1999, було опубліковано згодом:
Нові можливості
Узагальнити
Перспектива
Типи даних
Булеві типи даних
Стандарт SQL:1999 оголошує булів тип,[2] але багато комерційних серверів SQL (Oracle Database, IBM DB2) не підтримують його як тип стовпчика чи змінної, і не дозволяють його у результатному наборі. Microsoft SQL Server є однією з кількох систем баз даних, що як слід підтримує значення BOOLEAN, використовуючи власний тип даних BIT. Кожні 1-8 полів BIT займають один повний байт дискового простору. MySQL інтерпретує BOOLEAN як синонім TINYINT (8-бітове знакове ціле число).[9] PostgreSQL забезпечує стандартний відповідник булевого типу.[10]
Відмітні користувацькі типи повноважень
Іноді званих просто відмітними типами (англ. distinct types), їх було введено як необов'язкову можливість (S011) дозволяти наявним атомарним типам розширюватися різним сенсом, створюючи нові типи, і таким чином вмикаючи механізм перевірки типів для виявлення деяких логічних помилок як-от випадкового додавання віку до платні. Наприклад:
create type age as integer final;
create type salary as integer final;
створює два різні та несумісні типи. Відмітні типи SQL використовують еквівалентність за назвою, а не структурну, як typedef[en] у мові C. Виконання сумісних операцій над стовпчиком або даними відмітних типів лишається можливим шляхом явного застосування CAST
.
Їх підтримують кілька систем SQL, наприклад, IBM DB2.[11] Oracle Database наразі їх не підтримує, рекомендуючи натомість їх емуляцію однозначним структурованим типом[en].[12]
Структуровані користувацькі типи
Детальніші відомості з цієї теми ви можете знайти в статті Структурований тип[en].
Є основою розширення об'єктно-реляційної бази даних у SQL:1999. Вони аналогічні до класів у об'єктно-орієнтованих мовах програмування. SQL:1999 дозволяє лише просте успадкування.
Загальні табличні вирази та рекурсивні запити
SQL:1999 додає конструкцію WITH [RECURSIVE]
, що дозволяє рекурсивні запити, які, подібно до транзитивного замикання, задаються у мові запитів; див. загальні табличні вирази.
Деякі можливості OLAP
GROUP BY було розширено опціями ROLLUP
, CUBE
та GROUPING SETS
.
Керування доступом на основі ролей
Підтримка керування доступом на основі ролей (англ. Role-based access control — RBAC) за допомогою CREATE ROLE
.
Ключові слова
SQL:1999 вводить ключове слово UNNEST
.[13]
Примітки
Література
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.