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

База данных SQLite

Общие сведения

SQLite — компактная реляционная база данных. Движок представляет собой библиотеку, которая интегрируется в ПО, а в качестве протокола обмена данными используются вызовы функций (API). Данный подход позволяет ускорить отклик и упростить программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в одном стандартном файле в каталоге проекта.

Справка

Реляционная СУБД — это программная система для создания и управления базами данных, которая организует информацию в виде набора взаимосвязанных таблиц, состоящих из строк и столбцов, и обеспечивает доступ к данным с помощью языка структурированных запросов (SQL).

Информация

Для использования базы данных SQLite не требуется устанавливать дополнительное программное обеспечение. В Симплайт 5 данная база подключается автоматически при создании нового проекта.

Структура данных

Файлы базы данных находятся в каталоге C:/SimpLight projects/---имя проекта---/data/. Ниже представлена структура файлов с комментариями:

data/
 ├─ storage.db               служебный файл базы данных
 └─ tags/                    основное хранилище базы данных
     └─ 2026/                год 
         └─ 1/               месяц
             ├─ 1.db         файл с данными за 1.01.2026
             ├─ 2.db         файл с данными за 2.01.2026
             ├─ 3.db         файл с данными за 3.01.2026 
             ├─ 3.db-shm     служебный файл активно используемой базы (Shared Memory)
             └─ 3.db-wal     служебный файл активно используемой базы (Write-Ahead Log)

Служебные утилиты SQLite

Для выполнения внешних операций с файлами базы данных SQLite необходимо загрузить архив sqlite-tools-win-x64.zip с официального сайта.

Далее необходимо распаковать архив. На данном этапе потребуется только утилита sqlite3.exe.

Каталог с этой утилитой необходимо добавить в список зарегистрированных в системной переменной Path операционной системы Windows.
Для этого следует:

  1. Нажать сочетание клавиш Win+R для вызова окна "Выполнить" в ОС Windows.
  2. Ввести команду sysdm.cpl для вызова диалогового окна "Свойства системы".
  3. В диалоговом окне "Система" на вкладке "Дополнительно" нажать кнопку "Переменные среды".
  4. Добавить в переменную Path путь к каталогу с утилитами sqlite.

Для работы с файлами баз данных SQLite можно также использовать графический клиент. В рамках данного раздела работа с ним не рассматривается.

Работа с файлами базы данных

Пример:
В проекте counter организовано архивирование значений одного тега. С помощью консольной утилиты sqlite3.exe необходимо отразить архивные данные тега за 21.01.2026.

Для начала работы с утилитой необходимо перейти в каталог C:\SimpLight projects\counter\data\tags\2026\1, в котором содержатся архивные данные проекта за январь 2026 года. В проводнике Windows необходимо указать команду cmd, чтобы открыть окно командной строки для данного каталога.

В приглашении будет указан путь к каталогу с данными.

Для отображения данных за 21 января следует выполнить команду sqlite3 21.db. Далее последовательно ввести 2 команды:

.tables — вывести список всех таблиц в текущей базе данных. (в данном случае таблица только одна — moments).
.schema — показать схему базы данных (или отдельной таблицы, если указан необязательный аргумент с именем таблицы).

Важно

При работе с утилитой существует вероятность случайно перейти в многострочный режим ввода команд (...>). Для выхода из этого режима необходимо ввести символ ; и нажать Enter. Для завершения работы с утилитой можно использовать команды .exit или .quit, а также комбинацию клавиш Ctrl+C.

В данной базе данных присутствует только таблица moments. Ниже представлено описание некоторых параметров этой таблицы:

  • moment_id — уникальный идентификатор записи.
  • channel_id — уникальный идентификатор канала.
  • add_time — временная метку.
  • quality — признак качества.
  • f64 — архивируемое значение тега.

Следующие команды отвечают за вывод данных по шаблону в табличном режиме:

.mode box — включает формат табличного вывода.
select * from moments limit 10; — SQL запрос SELECT: отобразит первые 10 строк таблицы moments.

Например, если требуется вывести все значения поля f64 больше 90 по определенному шаблону, то также требуется использовать SQL-запрос SELECT.

select f64, datetime(add_time/1000,'unixepoch','localtime') from moments where f64 > 90;

Экспорт данных в CSV-файл

.header on — включить отображение заголовков столбцов.
.mode csv — установить режим работы с CSV-файлом.
.once с:/base/bd.csv — перенаправить вывод запроса в указанный файл. Файл и каталог должны существовать.
select datetime(add_time/1000,'unixepoch','localtime') as date, round(f64,2) as value from moments; — показать строки базы таблицы moments, отображая в таблице два отформатированных поля add_time и f64, имена которых заменяются соответственно на date и value.
.system "с:/base/bd.csv" — открыть файл в редакторе CSV-файлов по умолчанию.

Экспорт данных в Exсel-файл

.excel— открывает следующий SQL-запрос или команду непосредственно в Microsoft Excel.
select * from moments — SQL-запрос SELECT: показать все строки базы таблиц.

Восстановление

.recover --output recovered.db — восстанавливает максимально возможное количество данных из поврежденного или нечитаемого файла базы данных в новую базу recovered.db.