136 lines
6.2 KiB
Markdown
136 lines
6.2 KiB
Markdown
# 命令与选项
|
||
|
||
ChuSQL 的主要用户命令如下:
|
||
|
||
类型说明见 [自定义类型与预定义类型](types.md),身份属性说明见 [用户、角色与 root 属性](users-and-roles.md)。
|
||
|
||
SQL 的查询、事务、类型、用户与授权语法见 [syntax.md](syntax.md)。
|
||
|
||
## 组件命令
|
||
|
||
安装脚本在启动服务前运行 `csql-bootstrap`:创建系统目录、初始化默认 `root`(LOGIN / SUPERUSER / ENABLED),再登记内置类型。管理员名称可通过安装选项修改。初始化失败时安装报错,停止启动服务。
|
||
|
||
预装目录 `system.__system_types` 登记 18 个名称与别名:INT、INTEGER、BIGINT、SMALLINT、VARCHAR、CHAR、TEXT、STR、BOOLEAN、BOOL、FLOAT、REAL、DOUBLE、DECIMAL、NUMERIC、DATE、TIMESTAMP、BLOB;记录基础表示及是否接受类型参数。该目录为受保护的系统元数据,不创建预定义 DOMAIN;DOMAIN 仍按工作库保存。
|
||
|
||
重复引导保留已有身份、密码及一致的类型记录,补齐缺失类型;同名定义冲突明确报错。已有引导身份失去管理员属性时拒绝继续,不自动提升权限。
|
||
|
||
修复或补齐安装引导时,可停止数据库服务后运行 `csql-bootstrap --config FILE --user root --password-stdin`,通过标准输入提供口令。
|
||
|
||
系统目录故障时,先停止所有数据库进程,再依次考虑 `csql-bootstrap repair --config FILE`、`recover` 或清除系统身份和授权的 `reset`。`repair` 仅修复结构,涉及数据修改时中止;完整说明见 [bootstrap.md](bootstrap.md)。
|
||
|
||
| 命令 | 作用 |
|
||
| --- | --- |
|
||
| `chusql-server` | 启动数据库服务 |
|
||
| `chusql-web` | 启动 Web 管理端 |
|
||
| `csql` | 启动命令行客户端 |
|
||
| `csql-web` | 按配置启动 Web 管理端 |
|
||
| `csql-bootstrap` | 初始化系统身份与内置类型目录 |
|
||
|
||
各组件默认使用同一份 `settings.toml`。需要临时使用其他配置时,可通过 `--config FILE` 指定。
|
||
|
||
## csql
|
||
|
||
基本用法:
|
||
|
||
```sh
|
||
csql [options]
|
||
```
|
||
|
||
常用选项:
|
||
|
||
| 选项 | 说明 |
|
||
| --- | --- |
|
||
| `-u, --user USER` | 指定登录账号 |
|
||
| `-d, --database DB` | 登录后选择数据库 |
|
||
| `-f, --format FORMAT` | 输出格式:`table`、`json` 或 `csv` |
|
||
| `-e, --execute SQL` | 执行一条 SQL 后退出 |
|
||
| `--history FILE` | 指定历史记录文件 |
|
||
| `--sudo` | 使用本机 root / 提升管理员身份认证;需配置映射并启用身份属性,见 [用户与角色](users-and-roles.md#本机-sudo-认证) |
|
||
| `--config FILE` | 指定配置文件 |
|
||
| `-h, --help` | 显示帮助 |
|
||
|
||
CLI 历史只记录完整 SQL 和元命令。包含 `IDENTIFIED` 或 `PASSWORD`(忽略大小写)的输入不记录,多行口令输入和未完成语句也不会逐行写入历史;包含这些文本的普通字符串或标识符同样会被排除。已有历史文件不会自动清理。含这些文本的 SQL 解析错误会隐藏输入原文。
|
||
|
||
示例:
|
||
|
||
```sh
|
||
csql -d sales -e "SELECT * FROM orders LIMIT 5"
|
||
csql -f json -e "SELECT count(*) FROM orders"
|
||
```
|
||
|
||
在脚本里非交互使用(配合 `-e`):
|
||
|
||
- 口令从标准输入读取,兼容 LF、CRLF 和无行尾;保留口令中的空格。
|
||
- 管道输入时口令提示和错误信息写在标准错误,标准输出保留查询结果,失败时退出码为 `1`。
|
||
|
||
### 交互模式
|
||
|
||
SQL 语句以分号结束,可跨多行输入。
|
||
|
||
常用元命令:
|
||
|
||
| 命令 | 作用 |
|
||
| --- | --- |
|
||
| `\q` | 退出 |
|
||
| `\?` | 查看帮助 |
|
||
| `\l` | 列出数据库 |
|
||
| `\dt` | 列出当前数据库中的表 |
|
||
| `\d <表>` | 查看表结构 |
|
||
| `\c <库>` | 切换数据库 |
|
||
| `\f <格式>` | 修改输出格式 |
|
||
| `\dr` | 查看角色与授权信息(管理员) |
|
||
|
||
## chusql-web
|
||
|
||
基本用法:
|
||
|
||
```sh
|
||
chusql-web [options]
|
||
```
|
||
|
||
常用选项:
|
||
|
||
| 选项 | 说明 |
|
||
| --- | --- |
|
||
| `--port N` | 监听端口 |
|
||
| `--listen-host H` | 监听地址 |
|
||
| `--user NAME` | 管理员账号名 |
|
||
| `--config FILE` | 指定配置文件 |
|
||
| `-h, --help` | 显示帮助 |
|
||
|
||
静态资源目录固定为 `static`。其余请求大小、会话、登录限制、分页等参数通常通过 `settings.toml` 配置即可。
|
||
|
||
### 表格编辑与事务
|
||
|
||
首次打开业务数据表时建立编辑快照。同一页面内、同一数据库的跨表修改统一暂存;“提交全部”在服务端事务中执行,全部成功才持久化。逐项撤销只移除本地编辑项,下次提交从原快照重放剩余编辑;“撤销全部”执行 ROLLBACK 并重新加载表和统计。
|
||
|
||
途中发生约束错误时,整批语句退回编辑保存点,完整编辑内容仍可修正。写写冲突不会覆盖其他会话,必须撤销并重新加载后重新编辑。提交响应断线时冻结编辑集;再次点击提交使用同一标识确认或重试同一批修改,已成功的提交不会重复执行。
|
||
|
||
编辑事务绑定登录会话、页面和数据库;待提交修改存在时,先提交或撤销才能换库或运行 SQL。关闭最后一个表标签且没有待提交修改时释放快照。关闭页面会请求回滚,退出登录会关闭连接并丢弃快照;若页面断线、回滚请求未送达,后台每分钟按配置的会话空闲与最长寿命清理连接。重新登录不能继续旧事务。
|
||
|
||
SQL 控制台使用另一条服务端连接;SQL 的 BEGIN / COMMIT / ROLLBACK 绑定发起它的页面与查询标签。事务尚未结束时,其他控制台和普通 REST 写操作不能占用该连接;关闭所属查询标签或页面时请求回滚。系统身份修改不支持数据事务,账号表只读,使用 SQL 用户与角色命令管理。
|
||
|
||
Web 模块测试入口为 `stack test chusql-web --fast`,其中同时运行 `node --test test/transactions.mjs`;测试环境需要 Node.js。
|
||
|
||
## chusql-server
|
||
|
||
基本用法:
|
||
|
||
```sh
|
||
chusql-server [options]
|
||
```
|
||
|
||
常用选项:
|
||
|
||
| 选项 | 说明 |
|
||
| --- | --- |
|
||
| `--port N` | 数据库服务监听端口 |
|
||
| `--listen-host H` | 数据库服务监听地址 |
|
||
| `--user NAME` | 管理员账号名 |
|
||
| `--max-message N` | 单条请求大小上限 |
|
||
| `--max-rows N` | 单次查询返回行数上限 |
|
||
| `--config FILE` | 指定配置文件 |
|
||
| `-h, --help` | 显示帮助 |
|
||
|
||
`chusql-server` 是数据目录的唯一直接访问者。Web、CLI 及其他客户端均通过数据库服务访问数据。
|