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

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