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

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

Приведенный ниже перечень функциональности отражает соответствие Picodata SQL требованиям стандарта SQL:2016, а именно ISO/IEC 9075 «Database Language SQL» (Язык баз данных SQL).

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, Поддержка числовых типов данных, без учета табличного подзапроса и без поддержки Feature F131, «Групповые операции»

E011-06. Неявное приведение числовых типов данных

Подпункт 8.2, Значения любых числовых типов данных можно сравнивать друг с другом; такие значения сравниваются по отношению к их алгебраическим значениям Подпункт 9.1, «Назначение получения» и Подпункт 9.2, «Назначение хранения»: Значение одного числового типа можно назначать другому типу с возможным округлением, отсечением и учётом условий вне диапазона.

E021. Типы символьных строк

E021-01. Символьный тип данных (включая все варианты написания)

Подпункт 6.1, Соответствие типа CHARACTER лишь одному символьному типу Подпункт 13.5, Использование символьного типа CHARACTER для всех поддерживаемых языков

E021-03. Символьные литералы

Подпункт 5.3

E021-07. Конкатенация символов

Подпункт 6.29, Выражение конкатенации

E021-12. Сравнение символов

Подпункт 8.2, Поддержка типов CHARACTER и CHARACTER VARYING, не включая поддержку табличных подзапросов и без поддержки Feature F131, «Групповые операции»

E031. Идентификаторы

E031-02. Идентификаторы в нижнем регистре

Подпункт 5.2, Алфавитный символ в обычном идентификаторе может быть как строчным, так и прописным (т.е. идентификаторы без разделителей не обязательно должны содержать только буквы верхнего регистра)

E031-03. Символ нижнего подчеркивания в конце

Подпункт 5.2, Последний символ в обычном идентификаторе может быть символом подчеркивания.

E051. Спецификация базовых запросов

E051-05. Элементы в списке выборки можно переименовывать

Подпункт 7.12, «Спецификация запросов»: как в заголовке пункта

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»: Не включая Feature F481, «Расширенный предикат NULL»

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

E101. Базовая обработка данных

E101-01. Инструкция INSERT

Подпункт 14.11, «Инструкция INSERT»: Когда конструктор контекстно типизированного табличного значения может состоять не более чем из одного контекстно типизированного выражения значения строки

E111. Инструкция SELECT, возвращающая одну строку

Подпункт 14.7, «Инструкция select: одна строка»: Не включая поддержку Feature F131, «Групповые операции»

E131. Поддержка значения NULL (NULL вместо значений)

Подпункт 4.13, «Столбцы, поля и атрибуты»: Способность обнуления Подпункт 6.5, «Спецификация контекстно типизированного значения»: Спецификация нулевого значения

F041. Базовое объединение таблиц

F041-01. Операция inner join, но необязательно с ключевым словом INNER

Подпункт 7.6, «Ссылка на таблицу»: Раздел про объединения таблиц, но не включая поддержки подфункций с ### F041-02 по ### F041-08

F041-02. Ключевое слово INNER

Подпункт 7.7, «Объединенная таблица»: тип объединения INNER

F041-05. Вложенные outer join

Подпункт 7.7, «Объединенная таблица»: Подфункция ### F041-01 расширена таким образом, что ссылка на таблицу в объединенной таблице сама может быть объединенной таблицей:

F041-08. Все операторы сравнения поддерживаются (помимо обычного =)

Подпункт 7.7, «Объединенная таблица»: Подфункция ### F041-01 расширена таким образом, что условие соединения не ограничивается предикатом сравнения с оператором сравнения

F201. Функция CAST

Подпункт 6.13, «Спецификация CAST» для всех типов данных Подпункт 6.26, «Выражение значения» для спецификации CAST

F471. Скалярные значения подзапросов

Подпункт 6.26, «Выражение значения»: Первичное выражение значения может быть скалярным подзапросом.

T631. Предикат IN с одним элементом списка

Подпункт 8.4, «Предикат in»: Список значений 'in' содержит ровно одно выражение значения строки.

E101-03. Инструкция UPDATE с поиском

E101-04. Инструкция DELETE с поиском

E011-04. Арифметические операторы

E071-01. Табличный оператор UNION DISTINCT

F041-03. LEFT OUTER JOIN

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