Совместимость с ANSI¶
Приведенные в таблице возможности Picodata SQL соответствуют требованиям стандарта SQL:2016, а именно ISO/IEC 9075:2016 «Информационные технологии — Языки баз данных — SQL».
Легенда¶
E001-01—возможность полностью реализована
E001-01—возможность частично реализована
E001-01—возможность не реализована
Обязательные возможности¶
Идентификатор | Наименование | Поддержка | Примечание |
---|---|---|---|
E011 | Числовые типы данных | ||
E011-01 | Типы данных INTEGER и SMALLINT (включая все варианты написания) | Тип SMALLINT не поддерживается | |
E011-02 | Типы данных REAL, DOUBLE PRECISION и FLOAT | DOUBLE | Типы REAL, DOUBLE PRECISION, FLOAT не поддерживаются, но есть DOUBLE |
E011-03 | Типы данных DECIMAL и NUMERIC | DECIMAL | Тип NUMERIC не поддерживается |
E011-04 | Арифметические операторы | ||
E011-05 | Числовые сравнения | ||
E011-06 | Неявное приведение числовых типов данных | ||
E021 | Типы символьных строк | ||
E021-01 | Тип данных CHARACTER (включая все варианты написания) | ||
E021-02 | Тип данных CHARACTER VARYING (включая все варианты написания) | VARCHAR | Типы VARYING, CHARACTER VARYING не поддерживаются, но есть VARCHAR |
E021-03 | Символьные литералы | ||
E021-04 | Функция CHARACTER_LENGTH | ||
E021-05 | Функция OCTET_LENGTH | ||
E021-06 | Функция SUBSTRING | SUBSTR | Функция SUBSTRING не поддерживается, но есть SUBSTR |
E021-07 | Конкатенация символов | ||
E021-08 | Функции UPPER и LOWER | ||
E021-09 | Функция TRIM | TRIM | |
E021-10 | Неявное приведение между типами символьных строк фиксированной и переменной длины | ||
E021-11 | Функция POSITION | ||
E021-12 | Сравнение символов | ||
E031 | Идентификаторы | ||
E031-01 | Идентификаторы с разделителями | ||
E031-02 | Идентификаторы в нижнем регистре | ||
E031-03 | Символ нижнего подчеркивания в конце | ||
E051 | Спецификация базовых запросов | ||
E051-01 | SELECT DISTINCT | SELECT -> SELECT DISTINCT |
|
E051-02 | Предложение GROUP BY | SELECT -> GROUP BY |
|
E051-04 | GROUP BY может содержать колонки не из списка выборки | ||
E051-05 | Элементы в списке выборки можно переименовывать | ||
E051-06 | Предложение HAVING | SELECT -> HAVING |
|
E051-07 | Допускается использование * в квалификаторе для списка выборки | ||
E051-08 | Корреляционные имена в предложении FROM | ||
E051-09 | Переименование колонок в предложении FROM | ||
E061 | Базовые предикаты и условия поиска | ||
E061-01 | Предикат сравнения | ||
E061-02 | Предикат BETWEEN | Выражение -> BETWEEN |
|
E061-03 | Предикат IN со списком значений | Выражение -> IN |
|
E061-04 | Предикат LIKE | ||
E061-05 | Предикат LIKE: предложение ESCAPE | ||
E061-06 | Предикат NULL | Выражение -> NULL |
|
E061-07 | Предикат количественного сравнения | ||
E061-08 | Предикат EXISTS | Выражение -> EXISTS |
|
E061-09 | Подзапросы в предикате сравнения | ||
E061-11 | Подзапросы в предикате IN | ||
E061-12 | Подзапросы в предикате количественного сравнения | ||
E061-13 | Коррелирующие подзапросы | ||
E061-14 | Условие поиска | ||
E071 | Базовые выражения с запросами | ||
E071-01 | Табличный оператор UNION DISTINCT | SELECT -> UNION |
|
E071-02 | Табличный оператор UNION ALL | SELECT -> UNION ALL |
|
E071-03 | Табличный оператор EXCEPT DISTINCT | SELECT -> EXCEPT [ DISTINCT ] |
|
E071-05 | Колонки, объединенные с помощью табличных операторов, необязательно должны иметь одинаковый тип данных | ||
E071-06 | Табличные операторы в подзапросах | ||
E081 | Базовые привилегии | ||
E091 | Функции множеств | ||
E091-01 | AVG | Агрегатные функции -> AVG |
|
E091-02 | COUNT | Агрегатные функции -> COUNT |
|
E091-03 | MAX | Агрегатные функции -> MAX |
|
E091-04 | MIN | Агрегатные функции -> MIN |
|
E091-05 | SUM |
|
|
E091-06 | Квантификатор ALL | ||
E091-07 | Квантификатор DISTINCT | Агрегатные функции -> DISTINCT |
|
E101 | Базовые операции с данными | ||
E101-01 | Инструкция INSERT | INSERT | |
E101-03 | Инструкция UPDATE с возможностью поиска | UPDATE | |
E101-04 | Инструкция DELETE с возможностью поиска | DELETE | |
E111 | Инструкция SELECT, возвращающая одну строку | ||
E121 | Базовая поддержка курсоров | ||
E121-01 | DECLARE CURSOR | ||
E121-02 | Колонки ORDER BY необязательно должны быть в списке выборки | ||
E121-03 | Выражения значений в предложении ORDER BY | ||
E121-04 | Инструкция OPEN | ||
E121-06 | Инструкция UPDATE с возможностью позиционирования | ||
E121-07 | Инструкция DELETE с возможностью позиционирования | ||
E121-08 | Инструкция CLOSE | ||
E121-10 | Инструкция FETCH: неявный NEXT | ||
E121-17 | Курсоры WITH HOLD | ||
E131 | Поддержка нулевого значения (нули вместо значений) | NULL | |
E141 | Базовые ограничения целостности | ||
E141-01 | Ограничения NOT NULL | CREATE TABLE -> [ NOT ] NULL |
|
E141-02 | Ограничения UNIQUE для колонок NOT NULL | ||
E141-03 | Ограничения PRIMARY KEY | CREATE TABLE -> PRIMARY KEY |
|
E141-04 | Базовое ограничение FOREIGN KEY с параметром NO ACTION по умолчанию как для ссылочной операции удаления, так и для ссылочной операции обновления | ||
E141-06 | Ограничения CHECK | ||
E141-07 | Значения колонок по умолчанию | ||
E141-08 | Ограничения NOT NULL неявно используются с ограничениями PRIMARY KEY | CREATE TABLE -> PRIMARY KEY |
|
E141-10 | Имена во внешнем ключе могут указываться в любом порядке | ||
E151 | Поддержка транзакций | ||
E151-01 | Инструкция COMMIT | ||
E151-02 | Инструкция ROLLBACK | ||
E152 | Базовая инструкция SET TRANSACTION | ||
E152-01 | Инструкция SET TRANSACTION: предложение ISOLATION LEVEL SERIALIZABLE | ||
E152-02 | Инструкция SET TRANSACTION: предложения READ ONLY и READ WRITE | ||
E153 | Обновляемые запросы с подзапросами | ||
E161 | Комментарии SQL, начинающиеся с двойного минуса | ||
E171 | Поддержка SQLSTATE | ||
E182 | Привязка к языку хоста | ||
F031 | Базовые операции со схемой | ||
F031-01 | Инструкция CREATE TABLE для создания постоянных базовых таблиц | CREATE TABLE | |
F031-02 | Инструкция CREATE VIEW | ||
F031-03 | Инструкция GRANT | GRANT | |
F031-04 | Инструкция ALTER TABLE: предложение ADD COLUMN | ||
F031-13 | Инструкция DROP TABLE: предложение RESTRICT | DROP TABLE | Предложение RESTRICT не поддерживается |
F031-16 | Инструкция DROP VIEW: предложение RESTRICT | ||
F031-19 | Инструкция REVOKE: предложение RESTRICT | REVOKE | Предложение RESTRICT не поддерживается |
F041 | Базовая объединенная таблица | ||
F041-01 | Внутреннее соединение (ключевое слово INNER необязательно) | SELECT -> [ INNER ] JOIN |
|
F041-02 | Ключевое слово INNER | SELECT -> INNER JOIN |
|
F041-03 | LEFT OUTER JOIN | SELECT -> LEFT OUTER JOIN |
|
F041-04 | RIGHT OUTER JOIN | ||
F041-05 | Внешние соединения могут быть вложенными | SELECT — Множественные соединения |
|
F041-07 | Таблица, полученная левым или правым внешним соединением, может быть использована во внутреннем соединении | ||
F041-08 | Поддерживаются все операторы сравнения (не только обычное равенство) | ||
F051 | Базовая поддержка даты и времени | ||
F051-01 | Тип данных DATE (включая поддержку литерала DATE) | DATETIME | Тип и литерал DATE не поддерживаются, но есть DATETIME |
F051-02 | Тип данных TIME (включая поддержку литерала TIME) с минимальной точностью дробной части секунд в 0 знаков | ||
F051-03 | Тип данных TIMESTAMP (включая поддержку литерала TIMESTAMP) с минимальной точностью дробной части секунд в 0 и 6 знаков | ||
F051-04 | Предикат сравнения для типов данных DATE, TIME и TIMESTAMP | ||
F051-05 | Явное приведение с помощью CAST между типами даты и времени и типами символьных строк | ||
F051-06 | Функция CURRENT_DATE | CURRENT_DATE | |
F051-07 | LOCALTIME | ||
F051-08 | LOCALTIMESTAMP | ||
F081 | UNION и EXCEPT в представлениях | ||
F131 | Операции со сгруппированными представлениями | ||
F131-01 | Предложения WHERE, GROUP BY и HAVING поддерживаются в запросах со сгруппированными представлениями | ||
F131-02 | Несколько таблиц поддерживаются в запросах со сгруппированными представлениями | ||
F131-03 | Агрегатные функции поддерживаются в запросах со сгруппированными представлениями | ||
F131-04 | Подзапросы с предложениями GROUP BY и HAVING и сгруппированными представлениями | ||
F131-05 | Инструкция SELECT, возвращающая одну строку, с предложениями GROUP BY и HAVING и сгруппированными представлениями | ||
F181 | Поддержка нескольких модулей | ||
F201 |
Функция CAST | CAST | |
F221 | Явные значения по умолчанию | ||
F261 | Выражение CASE | ||
F261-01 | Простое выражение CASE | CASE — Простое выражение CASE |
|
F261-02 | Выражение CASE с условиями | CASE — Выражение CASE с условиями |
|
F261-03 | NULLIF | ||
F261-04 | COALESCE | ||
F311 | Инструкция определения схемы | ||
F311-01 | CREATE SCHEMA | ||
F311-02 | CREATE TABLE для постоянных базовых таблиц | ||
F311-03 | CREATE VIEW | ||
F311-04 | CREATE VIEW: WITH CHECK OPTION | ||
F311-05 | Инструкция GRANT | ||
F471 | Скалярные значения подзапросов | SCALAR | |
F481 | Расширенный предикат NULL | ||
F812 | Базовое использование флагов | ||
S011 | Пользовательские типы данных | ||
T321 | Базовые подпрограммы, вызываемые SQL | ||
T321-01 | Пользовательские функции без перегрузки | ||
T321-02 | Пользовательские хранимые процедуры без перегрузки | ||
T321-03 | Вызов функции | ||
T321-04 | Инструкция CALL | CALL | |
T321-05 | Инструкция RETURN | ||
T631 | Предикат IN с одним элементом списка |
Необязательные возможности¶
Идентификатор | Наименование | Поддержка | Примечание |
---|---|---|---|
F321 | Авторизация пользователя | ||
T031 | Тип данных BOOLEAN | BOOLEAN, BOOL | |
T331 | Базовые роли |
Дополняющие стандарт возможности¶
Идентификатор | Наименование | Поддержка | Примечание |
---|---|---|---|
— | Тип данных NUMBER | NUMBER | |
— | Тип данных TEXT | TEXT, STRING | |
— | Тип данных UUID | UUID | |
— | GROUP_CONCAT | Агрегатные функции -> GROUP_CONCAT |
|
— | CREATE INDEX | CREATE INDEX | |
— | DROP INDEX | DROP INDEX | |
— | ORDER BY | SELECT -> ORDER BY |
|
— | ALTER USER | ALTER USER | |
— | CREATE USER | CREATE USER | |
— | DROP USER | DROP USER | |
— | EXPLAIN | EXPLAIN | |
— | VALUES | VALUES | |
— | CTE | CTE | |
— | TO_CHAR | TO_CHAR | |
— | TO_DATE | TO_DATE | |
— | CURRENT_DATE | CURRENT_DATE |