Перейти к содержанию

Совместимость с ANSI

Приведенные в таблице возможности Picodata SQL соответствуют требованиям стандарта SQL:2016, а именно ISO/IEC 9075:2016 «Информационные технологии — Языки баз данных — SQL».

Mandatory features

Идентификатор Наименование Описание
E011 Числовые типы данных
E011-01 Типы данных INTEGER и SMALLINT (включая все варианты написания) Подпункт 5.3, Установка знака для беззнакового целого
E011-02 Типы данных REAL, DOUBLE PRECISION и FLOAT Подпункт 5.3, Установка знака для приблизительного числового литерала
Подпункт 6.1, Округление числового типа
E011-03 Типы данных DECIMAL и NUMERIC Подпункт 5.3, Литералы точных чисел
E011-05 Числовые сравнения Подпункт 8.2, Поддержка числовых типов данных, без учета табличного подзапроса и без поддержки функции F131, «Групповые операции»
E011-06 Неявное приведение числовых типов данных Подпункт 8.2, Значения любых числовых типов данных можно сравнивать друг с другом; такие значения сравниваются по отношению к их алгебраическим значениям
Подпункт 9.1, «Назначение получения» и Подпункт 9.2, «Назначение хранения»: Значение одного числового типа можно назначать другому типу с возможным округлением, отсечением и учетом условий вне диапазона
E021 Типы символьных строк
E021-01 Тип данных CHARACTER (включая все варианты написания) Подпункт 6.1, Соответствие типа CHARACTER лишь одному символьному типу
Подпункт 13.5, Использование символьного типа CHARACTER для всех поддерживаемых языков
E021-02 CHARACTER VARYING data type (including all its spellings) Subclause 5.2, “<token> and <separator>”: The <reserved word>s VARCHAR and VARYING
Subclause 6.1, “<data type>”: The CHARACTER VARYING <character string type>
Subclause 6.31, “<string value expression>”: For values of type CHARACTER VARYING
Subclause 13.5, “Data type correspondences”: Type correspondences for CHARACTER VARYING for all supported languages
E021-03 Символьные литералы Подпункт 5.3, “<literal>”: <quote> [<character representation>... ]<quote>
E021-07 Конкатенация символов Подпункт 6.29, Выражение конкатенации
E021-09 TRIM function Subclause 6.32, “<string value function>”: The <trim function>
E021-12 Сравнение символов Подпункт 8.2, Поддержка типов CHARACTER и CHARACTER VARYING, не включая поддержку табличных подзапросов и без поддержки функции F131, «Групповые операции»
E031 Идентификаторы
E031-02 Идентификаторы в нижнем регистре Подпункт 5.2, Алфавитный символ в обычном идентификаторе может быть как строчным, так и прописным (т. е. идентификаторы без разделителей не обязательно должны содержать только буквы верхнего регистра)
E031-03 Символ нижнего подчеркивания в конце Подпункт 5.2, Последний символ в обычном идентификаторе может быть символом подчеркивания
E051 Спецификация базовых запросов
E051-01 SELECT DISTINCT Subclause 7.16, “<query specification>”: With a <set quantifier> of DISTINCT, but without subfeatures E051-02 through E051-09
E051-02 GROUP BY clause Subclause 7.4, “<table expression>”: <group by clause>, but without subfeatures E051-04 through E051-09
Subclause 7.13, “<group by clause>”: With the restrictions that the <group by clause> shall contain a <column reference> equivalent to each group-invariant column reference in the <select list> and that any <column reference> in the <group by clause> shall also have an equivalent <column reference> in the <select list>
E051-05 Элементы в списке выборки можно переименовывать Подпункт 7.12, «Спецификация запросов»: как в заголовке пункта
E051-06 HAVING clause Subclause 7.4, “<table expression>”: <having clause>
Subclause 7.14, “<having clause>”
E051-07 Допускается использование * в квалификаторе для списка выборки Подпункт 7.12, «Спецификация запросов»: символ умножения
E051-08 Корреляционные имена в предложении FROM Подпункт 7.6, «Ссылка на таблицу»: [ AS ] в качестве корреляционного имени
E061 Базовые предикаты и условия поиска
E061-01 Предикат сравнения Подпункт 8.2, «Предикат сравнения»: Для поддерживаемых типов данных, без поддержки табличных подзапросов
E061-02 Предикат BETWEEN Подпункт 8.3, «Предикат BETWEEN»
E061-03 Предикат IN со списком значений Подпункт 8.4, «Предикат IN»: Без поддержки табличных подзапросов
E061-06 Предикат NULL Подпункт 8.8, «Предикат NULL»: Не включая функцию F481, «Расширенный предикат NULL»
E061-08 EXISTS predicate Subclause 8.10, “<exists predicate>”
E061-09 Подзапросы в предикате сравнения Подпункт 8.2, «Предикат сравнениe»: Включая поддержку табличных подзапросов
E061-11 Подзапросы в предикате IN Подпункт 8.4, «Предикат IN»: Включая поддержку табличных подзапросов
E061-14 Условие поиска Подпункт 8.21, «Условие поиска»
E071 Базовые выражения с запросами
E071-02 Табличный оператор UNION ALL Подпункт 7.13, «Выражение с запросом»: Включая поддержку UNION ALL
E071-03 Табличный оператор EXCEPT DISTINCT Подпункт 7.13, «Выражение с запросом»: Включая поддержку EXCEPT [ DISTINCT ]
E071-05 Столбцы, совмещенные с помощью табличных операторов, необязательно должны иметь идентичный тип данных Подпункт 7.13, «Выражение с запросом»: Столбцы, совмещенные с помощью UNION и EXCEPT, необязательно должны иметь идентичный тип данных
E071-06 Табличные операторы в подзапросах Подпункт 7.13, «Выражение с запросом»: В табличных подзапросах можно указывать UNION и EXCEPT
E091 Set functions
E091-01 AVG Subclause 6.9, “<set function specification>”: With <computational operation> of AVG
E091-02 COUNT Subclause 6.9, “<set function specification>”: With <computational operation> of COUNT
E091-03 MAX Subclause 6.9, “<set function specification>”: With <computational operation> of MAX
E091-04 MIN Subclause 6.9, “<set function specification>”: With <computational operation> of MIN
E091-05 SUM Subclause 6.9, “<set function specification>”: With <computational operation> of SUM
E091-07 DISTINCT quantifier Subclause 6.9, “<set function specification>”: With <set quantifier> of DISTINCT
E101 Базовая обработка данных
E101-01 Инструкция INSERT Подпункт 14.11, «Инструкция INSERT»: Когда конструктор контекстно типизированного табличного значения может состоять не более чем из одного контекстно типизированного выражения значения строки
E101-03 Searched UPDATE statement Subclause 14.14, “<update statement: searched>”: Without support either of Feature E153, “Updatable queries with subqueries”, or Feature F221, “Explicit defaults”
E101-04 Searched DELETE statement Subclause 14.9, “<delete statement: searched>”
E111 Инструкция SELECT, возвращающая одну строку Подпункт 14.7, «Инструкция SELECT: одна строка»: Не включая поддержку функции F131, «Групповые операции»
E131 Поддержка значения NULL (NULL вместо значений) Подпункт 4.13, «Столбцы, поля и атрибуты»: Способность обнуления
Подпункт 6.5, «Спецификация контекстно типизированного значения»: Спецификация нулевого значения
E141 Basic integrity constraints Subclause 11.6, “<table constraint definition>”: As specified by the subfeatures of this feature in this table
E141-01 NOT NULL constraints Subclause 11.4, “<column definition>”: With <column constraint> of NOT NULL
E141-03 PRIMARY KEY constraints Subclause 11.4, “<column definition>”: With <unique specification> of PRIMARY KEY for columns specified as NOT NULL
Subclause 11.7, “<unique constraint definition>”: With <unique specification> of PRIMARY KEY
F031 Basic schema manipulation
F031-01 CREATE TABLE statement to create persistent base tables Subclause 11.3, “<table definition>”: Not in the context of a <schema definition>
F031-03 GRANT statement Subclause 12.1, “<grant statement>”: Not in the context of a <schema definition>
F031-13 DROP TABLE statement: RESTRICT clause Subclause 11.31, “<drop table statement>”: With a <drop behavior> of RESTRICT
F031-19 REVOKE statement: RESTRICT clause Subclause 12.7, “<revoke statement>”: With a <drop behavior> of RESTRICT, only where the use of this statement can be restricted to the owner of the table being dropped
F041 Базовое объединение таблиц
F041-01 Внутреннее соединение, но необязательно с ключевым словом INNER Подпункт 7.6, «Ссылка на таблицу»: Раздел про объединения таблиц, но не включая поддержки подфункций с F041-02 по F041-08
F041-02 Ключевое слово INNER Подпункт 7.7, «Объединенная таблица»: тип объединения INNER
F041-03 LEFT OUTER JOIN Subclause 7.10, “<joined table>”: <outer join type> of LEFT
F041-05 Внешние соединения могут быть вложенными Подпункт 7.7, «Объединенная таблица»: Подфункция F041-01 расширена таким образом, что ссылка на таблицу в соединенной таблице сама может быть соединенной таблицей
F041-07 The inner table in a left or right outer join can also be used in an inner join Subclause 7.10, “<joined table>”: Subfeature F041-01 extended so that a <table name> within a nested <joined table> can be the same as a <table name> in an outer <joined table>
F041-08 Все операторы сравнения поддерживаются (помимо обычного =) Подпункт 7.7, «Объединенная таблица»: Подфункция F041-01 расширена таким образом, что условие соединения не ограничивается предикатом сравнения с оператором сравнения
F201 Функция CAST Подпункт 6.13, «Спецификация CAST» для всех типов данных
Подпункт 6.26, «Выражение значения» для спецификации CAST
F471 Скалярные значения подзапросов Подпункт 6.26, «Выражение значения»: Первичное выражение значения может быть скалярным подзапросом
T321 Basic SQL-invoked routines
T321-02 User-defined stored procedures with no overloading Subclause 11.60, “<SQL-invoked routine>”: With <SQL-invoked procedure>
T321-04 CALL statement Subclause 10.4, “”: Used by <call statement>s
Subclause 16.1, “<call statement>”
T631 Предикат IN с одним элементом списка Подпункт 8.4, «Предикат IN»: Список значений 'in' содержит ровно одно выражение значения строки

Optional features

Идентификатор Наименование Описание
F321 User authorization
T031 BOOLEAN data type
T331 Basic roles

См. также: Работа с данными SQL.