Работа с данными SQL¶
В данном разделе приведены примеры команд для работы с данными в Picodata с помощью команд языка SQL.
Создание таблицы¶
Для создания таблицы в Picodata следует сначала подключиться к интерактивной консоли инстанса.
Пользователи могут создавать как глобальные, так и шардированные таблицы (в последнем случае реализованы возможности распределенного SQL).
Для примера создадим таблицу со списком товаров на складе. В ней будут две колонки: идентификатор товара и его название:
CREATE TABLE warehouse (
id INTEGER NOT NULL,
item TEXT NOT NULL,
PRIMARY KEY (id))
USING memtx DISTRIBUTED BY (id)
IN TIER default
OPTION (TIMEOUT = 3.0);
Помимо двух колонок, в примере указаны:
- первичный ключ таблицы (колонка
id
) - движок хранения данных in-memory (
memtx
) - тип таблицы (шардированный,
distributed by
) - тир, на котором будет создана таблица.
Данный параметр применим только к шардированным таблицам. Использование
IN TIER
опционально — по умолчанию шардированная таблица принадлежат тируdefault
- ключ шардирования таблицы (колонка
id
) - таймаут перед возвращением управления пользователю
Для того чтобы создать такую же, но глобальную таблицу, следует указать соответствующий тип:
CREATE TABLE warehouse_global (
id INTEGER NOT NULL,
item TEXT NOT NULL,
PRIMARY KEY (id))
USING memtx DISTRIBUTED GLOBALLY
OPTION (TIMEOUT = 3.0);
Подробнее о типах таблиц см. в глоссарии.
Запись данных в таблицу¶
Запись данных, т.е. вставка строк, в таблицу происходит с помощью
команды INSERT
в SQL-запросе. В данный момент поддерживается запись
только в шардированные таблицы. Можно использовать обычный запрос с
прямой передачей значений:
INSERT INTO warehouse (id, item) VALUES (1, 'bricks');
Либо параметризированный запрос, но в Lua-режиме (\s l lua
):
pico.sql(
[[INSERT INTO warehouse (id, item) VALUES (?, ?)]],
{1, 'bricks'}
);
См. подробнее о различиях в INSERT
-запросах.
Чтение данных из таблицы¶
Для чтения всех данных из таблицы подойдет команда:
SELECT * FROM warehouse;
Можно вывести отдельно строку по известному полю:
SELECT * FROM warehouse WHERE id = 1;
См. подробнее о вариантах чтения данных в SQL.
Удаление данных¶
Удаление строки с известным id
:
DELETE FROM warehouse WHERE id = 1;
В консоли будет выведено количество удаленных строк (в данном случае, это 1
).
Приведенный выше пример поможет сделать первые шаги в работе с данными в Picodata. Подробнее о внутренней архитектуре кластера Picodata см. в разделе Жизненный цикл инстанса.
Параметры запуска из командной строки описаны в разделе Аргументы командной строки Picodata.