Совместимость с 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 | |||
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 | 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 | COALESCE | ||
F311 | Инструкция определения схемы | |||
F311-01 | CREATE SCHEMA | |||
F311-02 | CREATE TABLE для постоянных базовых таблиц | |||
F311-03 | CREATE VIEW | |||
F311-04 | CREATE VIEW: WITH CHECK OPTION | |||
F311-05 | Инструкция GRANT | |||
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 | Базовые роли |
Дополняющие стандарт возможности¶
Идентификатор | Наименование | Поддержка | Примечание |
---|---|---|---|
— | Тип данных TEXT | TEXT, STRING | |
— | Тип данных UUID | UUID | |
— | GROUP_CONCAT | Агрегатные функции -> GROUP_CONCAT |
|
— | CREATE INDEX | CREATE INDEX | |
— | DROP INDEX | DROP INDEX | |
— | ORDER BY | SELECT -> ORDER BY |
|
— | ALTER SYSTEM | ALTER SYSTEM | |
— | 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 | |
— | ILIKE | ILIKE |