Совместимость с 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.