Совместимость с ANSI SQL
Приведенный ниже перечень функциональности отражает соответствие 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
E071-03. Табличный оператор EXCEPT DISTINCT
F041-03. LEFT OUTER JOIN.
См. также: Работа с данными SQL.