Этот документ описывает поддерживаемый поднабор SQL (диалект проекта) и ограничения.
- Строковые литералы: одинарные кавычки
'...'. - Идентификаторы: латиница/цифры/
_(см. лексер). - Точка с запятой
;допускается и рекомендуется в интерактивном режиме.
На текущем этапе поддерживаются:
INT64— 64‑битное целое числоVARCHAR— строка переменной длины
Синтаксис:
CREATE TABLE table_name (
col1 TYPE,
col2 TYPE,
...
);Пример:
CREATE TABLE users (id INT64, name VARCHAR, age INT64);Синтаксис:
INSERT INTO table_name VALUES (value1, value2, ...);Пример:
INSERT INTO users VALUES (1, 'Alice', 25);Синтаксис:
SELECT targets FROM table_name [WHERE predicate];Поддерживается:
*(все колонки),- список выражений:
col,col1 + col2,price * 2, - алиасы:
expr AS alias, WHEREс логикойAND/OR,- сравнения:
=,!=,<,>,<=,>=.
Примеры:
SELECT * FROM users;
SELECT id, name FROM users WHERE id > 10 AND age <= 30;
SELECT name, age + 1 AS next_age FROM users WHERE name != 'Bob';Синтаксис:
CREATE INDEX index_name ON table_name(column_name) USING type;Где type:
HASH— для точечных запросов (предикат=),BTREE— для диапазонов (<,<=,>,>=) и точечных запросов (см.INDEXES.md).
Пример:
CREATE INDEX idx_users_id ON users(id) USING HASH;В текущей версии отсутствуют:
UPDATE,DELETE,DROP TABLE,DROP INDEX,JOIN,GROUP BY,ORDER BY,LIMIT,- транзакции и конкурентная модель исполнения.
Актуальный список планов и задач развития: ROADMAP.md.