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

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