Международная организация по стандартизации (ISO, International Organization for Standardization) в начале июня 2023 года приняла новую версию стандарта ISO/IEC 9075 "Information technology - Database languages - SQL" – SQL:2023. Этот стандарт определяет требования к синтаксису языка SQL, которые, хоть немного, но обеспечивают совместимость реляционных СУБД. Его первая версия вышла в 1986 году и была основана на стандарте ANSI SQL. Я считаю, что основополагающим стандартом для SQL был SQL-92. Он заложил фундамент, а остальные редакции его просто "достраивали" функционалом не совсем связанным с SQL: регулярные выражения, массивы, XML, JSON, элементы объектно-ориентированного программирования... Исключением можно считать только SQL:2003, который дал нам то, без чего сегодня трудно представить реляционную базу данных: оконные функции, генераторы последовательностей, автоинкрементные столбцы, MERGE, CREATE TABLE AS. А, что нового в стандарте SQL:2023?
Новшества стандарта SQL:2023 можно разделить на четыре основные группы:
- Ряд новых функций:
- GREATEST и LEAST (T054);
- функции заполнения строки RPAD и LPAD (T055);
- многосимвольные варианты функции TRIM (T056; LTRIM, RTRIM и BTRIM);
- ANY_VALUE (T626);
- Различные изменения в языке SQL:
- обработка NULL в ограничении уникальности (F292);
- ORDER BY по столбцу, который не отображается в списке SELECT сгруппированной таблицы (F868);
- необязательность указания максимальной длины для строковых типов полей (T081);
- упрощение CYCLE в рекурсивных запросах (T133);
- шестнадцатеричные, восьмеричные и двоичные целочисленные литералы (T661);
- подчеркивание в числовых литералах для визуальной группировки цифр (T662; прямо, как в Delphi 11);
- Новые функции, связанные с JSON:
- тип данных JSON (T801);
- расширенный тип данных JSON (T802);
- JSON на основе строк (T803, был добавлен еще в SQL:2016);
- целые шестнадцатеричные литералы в языке путей JSON (T840);
- функции упрощенного доступа к частям значений JSON с использованием синтаксиса точек и массивов (T860–T864);
- методы элементов данных JSON (T865–T878; bigint, boolean, date, decimal, decimal() with precision and scale, integer, number, string, time, time_tz, time precision, timestamp, timestamp_tz, timestamp precision);
- сравнение, сортировка и использование в операциях группировки (T879–T882);
- Подязык Property Graph Queries (PGQ), который стандартизует для РСУБД графовые запросы (новая часть стандарта "Part 16: Property Graph Queries (SQL/PGQ)").
На текущий момент в магазине ISO опубликованы и доступны для покупки 11 частей стандарта SQL:2023 на английском языке в PDF-формате:
- ISO/IEC 9075-1:2023 Information technology — Database languages SQL — Part 1: Framework (SQL/Framework)
- ISO/IEC 9075-2:2023 Information technology — Database languages SQL — Part 2: Foundation (SQL/Foundation)
- ISO/IEC 9075-3:2023 Information technology — Database languages SQL — Part 3: Call-Level Interface (SQL/CLI)
- ISO/IEC 9075-4:2023 Information technology — Database languages SQL — Part 4: Persistent stored modules (SQL/PSM)
- ISO/IEC 9075-9:2023 Information technology — Database languages SQL — Part 9: Management of External Data (SQL/MED)
- ISO/IEC 9075-10:2023 Information technology — Database languages SQL — Part 10: Object language bindings (SQL/OLB)
- ISO/IEC 9075-11:2023 Information technology — Database languages SQL — Part 11: Information and definition schemas (SQL/Schemata)
- ISO/IEC 9075-13:2023 Information technology — Database languages SQL — Part 13: SQL Routines and types using the Java TM programming language (SQL/JRT)
- ISO/IEC 9075-14:2023 Information technology — Database languages SQL — Part 14: XML-Related Specifications (SQL/XML)
- ISO/IEC 9075-15:2023 Information technology — Database languages SQL — Part 15: Multidimensional arrays (SQL/MDA)
- ISO/IEC 9075-16:2023 Information technology — Database languages SQL — Part 16: Property Graph Queries (SQL/PGQ)
>Исключением можно считать только SQL:2023
ОтветитьУдалитьНаверное SQL:2003
Большое спасибо! О SQL:2003 и думал.
Удалить