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

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

Пример работы

Пример:
В проекте 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.