SQL:1999 (також звана SQL 3) була четвертою редакцією мови запитів до баз даних SQL. Вона ввела велику кількість нових можливостей, багато з яких вимагали уточнення у наступній версії SQL:2003. Наразі SQL:1999 є застарілою.
Огляд
Документи стандарту ISO було опубліковано між 1999 та 2002 роками в декілька етапів, перший з яких складався з кількох частин. На відміну від попередніх редакцій, у назві стандарту було використано двокрапку замість дефісу задля узгодження з назвами інших стандартів ISO. Перший етап SQL:1999 мав п'ять частин:
- [en]: оновлене визначення розширення Call Level Interface, спочатку опублікованого 1995 року і також відомого як CLI-95
- : оновлене визначення розширення Persistent Stored Modules, спочатку опублікованого 1996 року і також відомого як PSM-96
Наступні три частини, що також розглядаються як частини SQL:1999, було опубліковано згодом:
- (SQL/MED) — Керування зовнішніми даними (SQL:1999 частина 9)
- [en] — Зв'язування об'єктних мов (SQL:1999 частина 10)
- [en] — Підпрограми та типи SQL, що використовуються у мові програмування Java (SQL:1999 частина 13)
Нові можливості
Типи даних
Булеві типи даних
Стандарт SQL:1999 оголошує булів тип, але багато комерційних серверів SQL (Oracle Database, IBM DB2) не підтримують його як тип стовпчика чи змінної, і не дозволяють його у результатному наборі. Microsoft SQL Server є однією з кількох систем баз даних, що як слід підтримує значення BOOLEAN, використовуючи власний тип даних BIT. Кожні 1-8 полів BIT займають один повний байт дискового простору. MySQL інтерпретує BOOLEAN як синонім TINYINT (8-бітове знакове ціле число). PostgreSQL забезпечує стандартний відповідник булевого типу.
Відмітні користувацькі типи повноважень
Іноді званих просто відмітними типами (англ. distinct types), їх було введено як необов'язкову можливість (S011) дозволяти наявним атомарним типам розширюватися різним сенсом, створюючи нові типи, і таким чином вмикаючи механізм перевірки типів для виявлення деяких логічних помилок як-от випадкового додавання віку до платні. Наприклад:
create type age as integer final; create type salary as integer final;
створює два різні та несумісні типи. Відмітні типи SQL використовують еквівалентність за назвою, а не структурну, як [en] у мові C. Виконання сумісних операцій над стовпчиком або даними відмітних типів лишається можливим шляхом явного застосування CAST
.
Їх підтримують кілька систем SQL, наприклад, IBM DB2. Oracle Database наразі їх не підтримує, рекомендуючи натомість їх емуляцію однозначним [en].
Структуровані користувацькі типи
Детальніші відомості з цієї теми ви можете знайти в статті [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
.
Примітки
- ISO/IEC 9075-1:1999. Міжнародна організація зі стандартизації. 1999. оригіналу за 24 грудня 2016. Процитовано 15 лютого 2017.
- ISO/IEC 9075-2:1999. Міжнародна організація зі стандартизації. 1999. оригіналу за 24 грудня 2016. Процитовано 15 лютого 2017.
- ISO/IEC 9075-3:1999. Міжнародна організація зі стандартизації. 1999. оригіналу за 25 грудня 2016. Процитовано 15 лютого 2017.
- ISO/IEC 9075-4:1999. Міжнародна організація зі стандартизації. 1999. оригіналу за 25 грудня 2016. Процитовано 15 лютого 2017.
- ISO/IEC 9075-5:1999. Міжнародна організація зі стандартизації. 1999. оригіналу за 24 грудня 2016. Процитовано 15 лютого 2017.
- ISO/IEC 9075-9:2001. Міжнародна організація зі стандартизації. 2001. оригіналу за 24 грудня 2016. Процитовано 15 лютого 2017.
- ISO/IEC 9075-10:2000. Міжнародна організація зі стандартизації. 2000. оригіналу за 25 грудня 2016. Процитовано 15 лютого 2017.
- ISO/IEC 9075-13:2002. Міжнародна організація зі стандартизації. 2002. оригіналу за 25 грудня 2016. Процитовано 15 лютого 2017.
- MySQL 5.0 Reference Manual — 11.4 Using Data Types from Other Database Engines. Dev.mysql.com (англійською) . MySQL. 9 січня 2010. оригіналу за 7 лютого 2014. Процитовано 30 січня 2014.
- PostgreSQL documentation about Boolean Type (англійською) . PostgreSQL. оригіналу за 9 березня 2018. Процитовано 15 лютого 2017.
- IBM Information Management Software for z/OS Solutions Information Center. Publib.boulder.ibm.com (англійською) . Процитовано 30 січня 2014.
{{}}
: Обслуговування CS1: Сторінки з параметром url-status, але без параметра archive-url () - Oracle Compliance To Core SQL:2003 (англійською) . Oracle Corporation. оригіналу за 2 грудня 2013. Процитовано 30 січня 2014.
- Джонс, Arie; Stephens, Райан К.; Plew, Рональд Р.; Гарретт, Роберт Ф.; Крігел, Алекс (2005). Appendix B ANSI and Vendor Keywords. . Джон Вайлі та сини. с. 680. ISBN . Архів оригіналу за 12 січня 2021. Процитовано 16 травня 2016.
Література
Посилання
- (PDF). Архів оригіналу (PDF) за 4 березня 2016. Процитовано 15 лютого 2017.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
SQL 1999 takozh zvana SQL 3 bula chetvertoyu redakciyeyu movi zapitiv do baz danih SQL Vona vvela veliku kilkist novih mozhlivostej bagato z yakih vimagali utochnennya u nastupnij versiyi SQL 2003 Narazi SQL 1999 ye zastariloyu OglyadDokumenti standartu ISO bulo opublikovano mizh 1999 ta 2002 rokami v dekilka etapiv pershij z yakih skladavsya z kilkoh chastin Na vidminu vid poperednih redakcij u nazvi standartu bulo vikoristano dvokrapku zamist defisu zadlya uzgodzhennya z nazvami inshih standartiv ISO Pershij etap SQL 1999 mav p yat chastin en onovlene viznachennya rozshirennya Call Level Interface spochatku opublikovanogo 1995 roku i takozh vidomogo yak CLI 95 onovlene viznachennya rozshirennya Persistent Stored Modules spochatku opublikovanogo 1996 roku i takozh vidomogo yak PSM 96 Nastupni tri chastini sho takozh rozglyadayutsya yak chastini SQL 1999 bulo opublikovano zgodom SQL MED Keruvannya zovnishnimi danimi SQL 1999 chastina 9 en Zv yazuvannya ob yektnih mov SQL 1999 chastina 10 en Pidprogrami ta tipi SQL sho vikoristovuyutsya u movi programuvannya Java SQL 1999 chastina 13 Novi mozhlivostiTipi danih Bulevi tipi danih Dokladnishe Logichnij tip danih Standart SQL 1999 ogoloshuye buliv tip ale bagato komercijnih serveriv SQL Oracle Database IBM DB2 ne pidtrimuyut jogo yak tip stovpchika chi zminnoyi i ne dozvolyayut jogo u rezultatnomu nabori Microsoft SQL Server ye odniyeyu z kilkoh sistem baz danih sho yak slid pidtrimuye znachennya BOOLEAN vikoristovuyuchi vlasnij tip danih BIT Kozhni 1 8 poliv BIT zajmayut odin povnij bajt diskovogo prostoru MySQL interpretuye BOOLEAN yak sinonim TINYINT 8 bitove znakove cile chislo PostgreSQL zabezpechuye standartnij vidpovidnik bulevogo tipu Vidmitni koristuvacki tipi povnovazhen Inodi zvanih prosto vidmitnimi tipami angl distinct types yih bulo vvedeno yak neobov yazkovu mozhlivist S011 dozvolyati nayavnim atomarnim tipam rozshiryuvatisya riznim sensom stvoryuyuchi novi tipi i takim chinom vmikayuchi mehanizm perevirki tipiv dlya viyavlennya deyakih logichnih pomilok yak ot vipadkovogo dodavannya viku do platni Napriklad create type age as integer final create type salary as integer final stvoryuye dva rizni ta nesumisni tipi Vidmitni tipi SQL vikoristovuyut ekvivalentnist za nazvoyu a ne strukturnu yak en u movi C Vikonannya sumisnih operacij nad stovpchikom abo danimi vidmitnih tipiv lishayetsya mozhlivim shlyahom yavnogo zastosuvannya CAST Yih pidtrimuyut kilka sistem SQL napriklad IBM DB2 Oracle Database narazi yih ne pidtrimuye rekomenduyuchi natomist yih emulyaciyu odnoznachnim en Strukturovani koristuvacki tipi Detalnishi vidomosti z ciyeyi temi vi mozhete znajti v statti en Ye osnovoyu rozshirennya ob yektno relyacijnoyi bazi danih u SQL 1999 Voni analogichni do klasiv u ob yektno oriyentovanih movah programuvannya SQL 1999 dozvolyaye lishe proste uspadkuvannya Zagalni tablichni virazi ta rekursivni zapiti SQL 1999 dodaye konstrukciyu span class k WITH span span class w span span class p span span class k RECURSIVE span span class p span sho dozvolyaye rekursivni zapiti yaki podibno do tranzitivnogo zamikannya zadayutsya u movi zapitiv div zagalni tablichni virazi Deyaki mozhlivosti OLAP GROUP BY bulo rozshireno opciyami ROLLUP CUBE ta GROUPING SETS Keruvannya dostupom na osnovi rolej Pidtrimka keruvannya dostupom na osnovi rolej angl Role based access control RBAC za dopomogoyu CREATE ROLE Klyuchovi slova SQL 1999 vvodit klyuchove slovo UNNEST PrimitkiISO IEC 9075 1 1999 Mizhnarodna organizaciya zi standartizaciyi 1999 originalu za 24 grudnya 2016 Procitovano 15 lyutogo 2017 ISO IEC 9075 2 1999 Mizhnarodna organizaciya zi standartizaciyi 1999 originalu za 24 grudnya 2016 Procitovano 15 lyutogo 2017 ISO IEC 9075 3 1999 Mizhnarodna organizaciya zi standartizaciyi 1999 originalu za 25 grudnya 2016 Procitovano 15 lyutogo 2017 ISO IEC 9075 4 1999 Mizhnarodna organizaciya zi standartizaciyi 1999 originalu za 25 grudnya 2016 Procitovano 15 lyutogo 2017 ISO IEC 9075 5 1999 Mizhnarodna organizaciya zi standartizaciyi 1999 originalu za 24 grudnya 2016 Procitovano 15 lyutogo 2017 ISO IEC 9075 9 2001 Mizhnarodna organizaciya zi standartizaciyi 2001 originalu za 24 grudnya 2016 Procitovano 15 lyutogo 2017 ISO IEC 9075 10 2000 Mizhnarodna organizaciya zi standartizaciyi 2000 originalu za 25 grudnya 2016 Procitovano 15 lyutogo 2017 ISO IEC 9075 13 2002 Mizhnarodna organizaciya zi standartizaciyi 2002 originalu za 25 grudnya 2016 Procitovano 15 lyutogo 2017 MySQL 5 0 Reference Manual 11 4 Using Data Types from Other Database Engines Dev mysql com anglijskoyu MySQL 9 sichnya 2010 originalu za 7 lyutogo 2014 Procitovano 30 sichnya 2014 PostgreSQL documentation about Boolean Type anglijskoyu PostgreSQL originalu za 9 bereznya 2018 Procitovano 15 lyutogo 2017 IBM Information Management Software for z OS Solutions Information Center Publib boulder ibm com anglijskoyu Procitovano 30 sichnya 2014 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z parametrom url status ale bez parametra archive url posilannya Oracle Compliance To Core SQL 2003 anglijskoyu Oracle Corporation originalu za 2 grudnya 2013 Procitovano 30 sichnya 2014 Dzhons Arie Stephens Rajan K Plew Ronald R Garrett Robert F Krigel Aleks 2005 Appendix B ANSI and Vendor Keywords Dzhon Vajli ta sini s 680 ISBN 9780764598074 Arhiv originalu za 12 sichnya 2021 Procitovano 16 travnya 2016 LiteraturaMelton Dzhim Sajmon Alan R 2002 SQL 1999 Understanding Relational Language Components Morgan Kaufmann ISBN 978 1 55860 456 8 Melton Dzhim 2003 Advanced SQL 1999 Understanding Object Relational and Other Advanced Features Morgan Kaufmann ISBN 978 1 55860 677 7 Posilannya PDF Arhiv originalu PDF za 4 bereznya 2016 Procitovano 15 lyutogo 2017