sqlite

sqlite 直接打开数据库文件,检查结构和行数据,修改数据、导出表、执行原生 SQL,并创建 SQL 转储。

数据库版本 1.1.4稳定
lil-terminal

概览

sqlite 直接操作数据库文件:打开文件、检查表和列、查看或修改行、导出数据、执行原生 SQL,并且无需独立数据库服务器即可创建 SQL 备份。

存放在文件中的数据库

SQLite 是存放在普通文件中的关系型 SQL 数据库,并直接嵌入打开它的进程。它不需要独立数据库服务器或网络登录,因此非常适合学习、本地工具以及许多中小型应用。但数据库规则仍然存在:事务、索引、约束、文件权限和并发写入都需要认真处理。

语法

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]

创建结构和数据转储

工作方式

常用形式都列在本地命令参考中。快捷操作负责检查和小范围修改;高级操作始终可以回到对应数据库的原生语法。

备份与恢复

dump/load 的格式由驱动决定。若需要覆盖数据库全部能力的完整备份,请使用服务器侧的原生备份工具。

安全

密码通过隐藏输入框提供,不会写入命令历史。生产环境应尽量使用权限受限的数据库账户。

单表超过 100000 行时会拒绝导出,而不是写入不完整文件;SQL 转储仍是完整的架构和数据备份方式。

已保存的连接

未使用 -m 时,连接数据只保留在当前 PHP 会话中。-m [name] 会明确把配置保存到受保护的 .lil.key 文件(0600),-K <name> 使用它重新连接,-k 可列出或检查配置但不会泄露已保存的密码,-M <name> 删除一个配置。kill 会与其他核心状态一起删除 .lil.key。请把该文件视为敏感文件,因为主动保存的配置可能包含数据库凭据。

交互式 sandbox 预览

可直接在页面中运行预先准备的示例。结果已预先生成并在浏览器中显示;服务器不会执行任何终端命令。

打开 SQLite 文件并检查数据

安装与管理

安装当前兼容版本。完整功能请选择 Base,精简包请选择 Minimum;已安装模块的更新请使用 upgrade。

Base 与 Minimum 是同一当前模块版本的两个包。

Base 包

安装包含本地参考和全部已发布模式的完整包。

install sqlite
Minimum 包

安装精简包。该包不包含本地参考;help <cmd> -i 会打开当前服务器参考。

install sqlite -m
精确公开版本

安装这个确切的已发布版本。

install sqlite -v 1.1.4
检查或升级

让 upgrade 检查兼容性,仅在需要时替换已安装块。

upgrade sqlite
删除模块

删除扩展块,不影响核心和其他模块。

install sqlite -u

示例

示例可复制,但网站不会执行。请先检查路径、权限和破坏性选项。

打开 SQLite 文件并检查数据
cd \sandbox\db | sqlite -c shop.sqlite | sqlite -t | sqlite -n products 5
mysql.sql
postgresql.sql
redis.txt
shop.sqlite
sqlite.sql

Status  connected
File    sandbox/db/shop.sqlite
SQLite  3.x

products
orders

id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.9	1
2	SHOE-2	Trail shoe	shoes	109	1
3	BAG-1	Canvas bag	bags	44.5	1
Sqlite · shop.sqlite
shop.sqlite
Status  connected
File    sandbox/db/shop.sqlite
SQLite  3.x
Sqlite · products
sqlite -s products
Column    Type     Not null  Key
id        INTEGER  no        PRIMARY
sku       TEXT     yes       UNIQUE
name      TEXT     yes
category  TEXT     yes
price     REAL     yes
active    INTEGER  yes
Sqlite · products
sqlite -f products "shoe" 20
id	sku	name	category	price
1	SHOE-1	City shoe	shoes	79.9
2	SHOE-2	Trail shoe	shoes	109
Sqlite · products
sqlite -o products -csv products.csv
Saved  products.csv
Sqlite · products
sqlite -a products : {"sku":"BAG-1","name":"Travel bag","price":49.90}
Inserted  1
ID        5
Sqlite · products
sqlite -w products sku BAG-1 : {"price":44.90}
Updated  1
Sqlite · products
sqlite -d products sku BAG-1
Deleted  1
Sqlite · select
sqlite : SELECT category,COUNT(*) FROM products GROUP BY category
category	COUNT(*)
accessories	1
bags	1
shoes	2
Sqlite · dump
sqlite dump shop-backup.sql
Saved  shop-backup.sql
Sqlite · load
sqlite load \sandbox\db\sqlite.sql
+
Sqlite · -e
sqlite -e
+
处理不存在的数据库文件
sqlite -c missing.sqlite
未找到数据库文件

本示例使用的文件: 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.42026-08-08

已保存的 SQLite 数据库

.lil.key 中增加命名 SQLite 路径,并提供明确的保存、查看、重新打开和删除操作。