sqlite

sqlite открывает файл базы напрямую, показывает схему и строки, изменяет данные, экспортирует таблицы, запускает нативный SQL и создаёт SQL-дампы.

База данныхВерсия 1.1.5Стабильная
lil-terminal

Обзор

Используйте sqlite прямо с файлами базы: откройте файл, изучите таблицы и столбцы, просматривайте или меняйте строки, выгружайте данные, выполняйте нативный SQL и создавайте SQL-резервные копии без отдельного сервера.

База данных внутри файла

SQLite — реляционная SQL-база, которая хранится в обычном файле и встраивается прямо в процесс приложения. Отдельный сервер и сетевой login не нужны, поэтому SQLite особенно удобен для экспериментов, локальных инструментов и многих небольших приложений. Но простота не отменяет правил базы: важны транзакции, индексы, ограничения, права на файл и конкурирующие записи.

Синтаксис

lil-terminal
sqlite [options] · sqlite : <sql>

Справочник

sqlite

показать текущий файл базы SQLite

sqlite -c <file> [-f] [-m [name]]

открыть базу SQLite; -f создаёт файл, если его нет

-use <file>

открыть другую существующую базу SQLite

-l

показать подключённые файлы баз

-t

показать таблицы и представления

-s <table>

показать столбцы и типы данных

-n <table> [rows]

показать несколько строк таблицы

-f <table> <text> [rows]

найти текст по столбцам таблицы

-o <table> [-j|-csv] [file] [-f]

выгрузить строки таблицы

-a <table> : <json>

добавить строку из JSON-объекта

-w <table> <field> <value> : <json>

изменить совпавшие строки из JSON-объекта

-d <table> <field> <value>

удалить совпавшие строки

-m [name]

сохранить текущую базу в .lil.key; по умолчанию использовать имя файла

-M <name>

удалить сохранённую базу

-k [name]

показать сохранённые базы или сведения об одной

-K <name>

открыть сохранённую базу

-e

закрыть выбранный файл базы

sqlite : <sql>

выполнить нативный SQL

sqlite load <file.sql>

выполнить SQL из файла

sqlite dump [file.sql] [-f]

создать дамп схемы и данных

Зачем нужна команда

sqlite позволяет работать с базой данных, которая хранится в обычном файле. Это удобно для небольшого сайта, каталога или переносимой базы: отдельный сервер MySQL и пароль для соединения не нужны. Но PHP должен иметь расширение SQLite3, а файл — доступные права чтения и записи.

Как пользоваться

Откройте существующую базу через sqlite -c db/shop.sqlite. Флаг -f в этой форме разрешает создание нового файла. Дальше -t покажет таблицы, -s products — поля и типы, -n products 3 — первые строки, -f products "shoe" — поиск. -o выгружает таблицу в JSON/CSV, после sqlite : можно написать запрос SQL. dump формирует SQL-копию схемы с данными, load выполняет SQL-файл, -use переключает открытую базу.

Ограничения и безопасность

Без -f отсутствующий файл не создаётся, символьные ссылки на базу отклоняются. -a/-w/-d и SQL меняют настоящий файл: перед изменением схемы, load или удалением лучше сохранить его копию. Через -m можно запомнить путь базы в .lil.key; -k/-K/-M управляют сохранёнными профилями. При экспорте одной таблицы действует лимит 100 000 строк. Учебные примеры используют sandbox/db/shop.sqlite, а не данные посетителя.

Интерактивный пример из `/sandbox/`

Запускайте подготовленные примеры прямо на странице. Результат заранее сформирован и показывается в браузере; команды терминала на сервере не выполняются.

Открыть SQLite-файл и посмотреть данные

Установка и управление

Устанавливайте актуальную совместимую версию. Для полного набора возможностей выбирайте Base, для сокращённого — Minimum; уже установленный модуль обновляет команда upgrade.

Base и Minimum — два пакета одного текущего релиза модуля, а не разные версии команды.

Пакет Base

Установить полный пакет с локальной справкой и всеми опубликованными режимами.

install sqlite
Пакет Minimum

Установить сокращённый пакет без локальной справки; help <cmd> -i открывает актуальную серверную справку.

install sqlite -m
Точная публичная версия

Установить именно эту опубликованную версию.

install sqlite -v 1.1.5
Проверить или обновить

Поручить upgrade проверить совместимость и заменить установленный блок только при необходимости.

upgrade sqlite
Удалить модуль

Удалить блок расширения, не затрагивая ядро и остальные модули.

install sqlite -u

Примеры

Примеры можно копировать, но сайт их не выполняет. Перед запуском на реальном проекте проверьте пути, права и разрушающие флаги.

Открыть SQLite-файл и посмотреть данные
sqlite -c db/shop.sqlite
Status  connected
File    sandbox/db/shop.sqlite
SQLite  (version depends on the host)
Показать текущий файл базы SQLite
sqlite
Status  connected
File    sandbox/db/shop.sqlite
SQLite  (version depends on the host)
Открыть базу SQLite; -f создаёт файл, если его нет
sqlite -c db/new-shop.sqlite -f
Status  connected
File    sandbox/db/new-shop.sqlite
SQLite  (version depends on the host)
Открыть базу SQLite; -f создаёт файл, если его нет
sqlite -c db/shop.sqlite -m shop-demo
Status  connected
File    sandbox/db/shop.sqlite
SQLite  (version depends on the host)
Saved   shop-demo
Открыть другую существующую базу SQLite
sqlite -use db/shop.sqlite
Status  connected
File    sandbox/db/shop.sqlite
Показать подключённые файлы баз
sqlite -l
seq	name	file
0	main	sandbox/db/shop.sqlite
Показать таблицы и представления
sqlite -t
name	type
orders	table
products	table
Показать столбцы и типы данных
sqlite -s products
cid	name	type	notnull	dflt_value	pk
0	id	INTEGER	0	NULL	1
1	sku	TEXT	1	NULL	0
2	name	TEXT	1	NULL	0
3	category	TEXT	1	NULL	0
4	price	REAL	1	NULL	0
5	active	INTEGER	1	1	0
Показать несколько строк таблицы
sqlite -n products 3
id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.9	1
2	SHOE-2	Trail shoe	shoes	109.0	1
3	BAG-1	Canvas bag	bags	44.5	1
Найти текст по столбцам таблицы
sqlite -f products "shoe" 3
id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.9	1
2	SHOE-2	Trail shoe	shoes	109.0	1
Выгрузить строки таблицы
sqlite -o products -j
[
  {
    "id": 1,
    "sku": "SHOE-1",
    "name": "City shoe",
    "category": "shoes",
    "price": 79.9,
    "active": 1
  },
  {
    "id": 2,
    "sku": "SHOE-2",
    "name": "Trail shoe",
    "category": "shoes",
    "price": 109.0,
    "active": 1
  },
  {
    "id": 3,
    "sku": "BAG-1",
    "name": "Canvas bag",
    "category": "bags",
    "price": 44.5,
    "active": 1
  },
  {
    "id": 4,
    "sku": "HAT-1",
    "name": "Summer hat",
    "category": "accessories",
    "price": 25.0,
    "active": 0
  }
]
Выгрузить строки таблицы
sqlite -o products -csv tmp/products.csv
Saved  sandbox/tmp/products.csv
Обработать отсутствующий файл базы
sqlite -o products -csv tmp/products.csv -f
Saved  sandbox/tmp/products.csv
Добавить строку из JSON-объекта
sqlite -a products : {"sku":"NEW-1","name":"Sample","category":"test","price":5,"active":1}
Inserted  1
ID        5
Изменить совпавшие строки из JSON-объекта
sqlite -w products sku HAT-1 : {"price":24}
Updated  1
Удалить совпавшие строки
sqlite -d products sku HAT-1
Deleted  1
Выполнить нативный SQL
sqlite : SELECT category, COUNT(*) AS total FROM products GROUP BY category
category	total
accessories	1
bags	1
shoes	2
Time  (varies) ms
Создать дамп схемы и данных
sqlite dump tmp/shop-backup.sql
Saved  sandbox/tmp/shop-backup.sql
Выполнить SQL из файла
sqlite load db/sqlite.sql
SQLite error: table products already exists
Сохранить текущую базу в .lil.key; по умолчанию использовать имя файла
sqlite -m shop-demo
Saved  shop-demo
Показать сохранённые базы или сведения об одной
sqlite -k
No saved connections
Открыть сохранённую базу
sqlite -K missing
Saved connection not found: missing
Удалить сохранённую базу
sqlite -M missing
Saved connection not found: missing
Закрыть выбранный файл базы
sqlite -e
+
Открыть базу SQLite; -f создаёт файл, если его нет
sqlite -c db/missing.sqlite
Database file not found
Открыть другую существующую базу SQLite
sqlite -c db/shop.sqlite -use db/missing.sqlite
Database file not found
Показать столбцы и типы данных
sqlite -s missing_table
Table not found: missing_table

Файл из примера: sandbox/db/sqlite.sql

Пример использует файл или каталог из защищённой учебной папки /sandbox/.

CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  sku TEXT UNIQUE NOT NULL,
  name TEXT NOT NULL,
  category TEXT NOT NULL,
  price REAL NOT NULL,
  active INTEGER NOT NULL DEFAULT 1
);
INSERT INTO products (sku,name,category,price,active) VALUES
('SHOE-1','City shoe','shoes',79.90,1),
('SHOE-2','Trail shoe','shoes',109.00,1),
('BAG-1','Canvas bag','bags',44.50,1);

Связанная документация

Текущая публичная версия

v1.1.52026-11-01

Производственная доработка

Актуальная стабильная версия sqlite. sqlite открывает файл базы напрямую, показывает схему и строки, изменяет данные, экспортирует таблицы, запускает нативный SQL и создаёт SQL-дампы.