DB 客户端
Blyck 的 DB 客户端以同一界面操作 SQLite · Oracle · PostgreSQL · MSSQL · MySQL 五种引擎。无需另外的 DB 工具,在一个窗口里就能完成连接 · 架构浏览 · 编写 SQL · 分析结果 · 修改数据 · 导出 · 自然语言生成 SQL。
支持的引擎 & 连接
Section titled “支持的引擎 & 连接”在新标签页菜单(+)中选择引擎,或点击已保存的连接。
| 引擎 | 必填项 | 默认端口 | 备注 |
|---|---|---|---|
| SQLite | 文件路径 | — | 超过 256MB·被锁定时自动切换为只读 |
| Oracle | Host · Port · Service Name · 用户 · 密码 | 1521 | 默认 Thin → 失败时自动回退 Thick |
| PostgreSQL | Host · Port · Database · 用户 · 密码 | 5432 | 架构·SSL 选项 |
| MSSQL | Host(服务器\实例)· Port · Database · 用户 · 密码 | 1433 | 仅 SQL 认证(不支持 Windows 集成认证) |
| MySQL | Host · Port · Database · 用户 · 密码 | 3306 | SSL 选项 |
Oracle Thin / Thick 模式
Section titled “Oracle Thin / Thick 模式”在连接对话框中打开 强制 Thick 选项,则始终以 Thick 模式连接。默认会先尝试 Thin,失败则回退到 Thick;连接后头部会显示 Oracle 已连接 (Thin) 或 Oracle 已连接 (Thick)。使用 Thick 模式时,需在对话框中填入 64 位 Oracle Instant Client 路径。
保存的连接 & 密码自动填充
Section titled “保存的连接 & 密码自动填充”在连接对话框中填入 保存名称 后,连接信息会被永久保存。密码通过 OS 加密(Windows DPAPI / macOS Keychain)保护,此后无需输入密码,点击一次即可立即连接。
连接后,左侧树会显示 TABLES / VIEWS / INDEXES / TRIGGERS / ROUTINES 各分区。
- 展开表 · 视图会显示列列表(名称 · 类型 · PK 图标),双击会在 SQL 编辑器中立即执行前 200 行查询。
- 双击索引 · 触发器 · 例程会将 DDL 加载到编辑器。
- 可将树中的表·列名拖入 SQL 编辑器进行插入。
在顶部搜索栏中选择 名称 / 列 / 二者 范围进行搜索。按列搜索时,相应的表会自动展开,头部显示 N / 全部 计数。
右键菜单(表)
Section titled “右键菜单(表)”| 项目 | 行为 |
|---|---|
| 详情查看 | 列类型 · 是否可 NULL · 默认值 · 索引信息 |
| 查询前 200 行 | 按引擎方言(LIMIT / TOP / ROWNUM)自动执行对应查询 |
| 查看 DDL | 将 CREATE 语句加载到编辑器 |
| 列分析 | NULL 比例 · 唯一值数 · 众数 · 数值统计(min/max/均值,基于样本) |
执行 DDL 查询后,500ms 后树会自动在后台重新索引以反映变更。要手动刷新,请点击头部的 ↻ 按钮。
SQL 编辑器
Section titled “SQL 编辑器”通过双击表或树头部的 新建查询 按钮打开编辑器。
| 按钮 | 行为 |
|---|---|
| ✨ | 切换自然语言→SQL 输入栏 |
| ▶ | 执行查询(Ctrl+Enter) |
| ■ | 停止执行(仅在执行中时可用) |
| + | 添加 SQL 标签 |
导轨底部会显示当前面板的 SQL 标签列表,便于在标签间快速切换。
DB名 — SQL ▾:连接切换下拉- 自动提交 复选框 / 提交 / 回滚
- AI(
Ctrl+I):单元格 AI(分析网格选区) - 历史 / 代码片段 / 导出 ▾ / 格式化 / 关闭(
Esc)
执行 & 自动完成
Section titled “执行 & 自动完成”- 用
Ctrl+Enter或 ▶ 按钮执行。 - 在选中文本的状态下执行,则仅执行选中范围。
- 会自动完成所连接 DB 的表·列名。
- 格式化 按钮以 SQL 子句前换行为准运行内置排版器。
- DML 执行后状态行会显示
完成 —— 变更 N 行 · Xms或红色错误。
将自动提交复选框关闭后进入手动事务模式。执行 DML 也不会立即确认,而是保持 ● 未确认 状态。用 提交 按钮确认,或用 回滚 按钮撤销。
服务端查询取消(■ 中断)
Section titled “服务端查询取消(■ 中断)”点击 ■ 按钮后,取消分两步进行。
- 软取消(立即) —— UI 立即返回,使令牌失效并丢弃结果。状态行显示
执行已中断。 - 服务端取消(best-effort) —— 向引擎发送取消信号。当 DB 服务器在检查点识别到时,查询被中断。
| 引擎 | 取消方式 |
|---|---|
| Oracle | connection.break() → 返回 ORA-01013 |
| MSSQL | request.cancel() → TDS Attention 报文 |
| PostgreSQL | 用独立连接执行 pg_cancel_backend(pid) —— 保留原连接 |
| MySQL | 用独立连接执行 KILL QUERY threadId —— 保留原连接 |
| SQLite | 无服务端取消 —— 仅软取消(立即中断) |
点击 SQL 编辑器标题 DB名 — SQL ▾,会显示当前打开的所有 DB 连接列表,当前连接处带 ✓ 标记。选择某个连接后,编辑器中的 SQL 保持不变,仅切换执行目标 DB。
结果以虚拟滚动网格显示,即使数十万行也能流畅浏览。
- 行号(
#)列 在横向滚动时也固定。点击会打开行详情查看器。 - 状态栏 显示
N 行 · Xms执行信息。 - NULL 以
NULL区分显示(与空字符串区分)。 - 可拖动调整列宽。
排序 · 过滤
Section titled “排序 · 过滤”- 排序:点击列头会在升序(▲)· 降序(▼)间切换。
- 过滤:在顶部输入框输入文本,会对所有列以部分匹配实时过滤(仅过滤显示行,不重新查询 DB)。
5,000 行以上
Section titled “5,000 行以上”默认显示 5,000 行,超出时用 再加载 5,000 行 按钮以 OFFSET/FETCH 累加加载。
单元格选择 · 复制
Section titled “单元格选择 · 复制”拖动选择矩形范围,用 导出 ▾ → 剪贴板(TSV) 复制即可直接粘贴到 Excel。用 Shift+双击 在查看器中查看单元格完整值。
直接编辑单元格 → UPDATE
Section titled “直接编辑单元格 → UPDATE”仅当结果为单表 SELECT 且包含 PK 列时,单元格编辑才会启用。
- 双击单元格修改值。
- 点击 提交 按钮,编辑器中会追加
UPDATE … WHERE PK=…语句。 - 用
Ctrl+Enter执行以生效。
已执行的变更与其他 DML 一样记录在变更历史(Ctrl+Shift+H)中,可以撤销。
新增行 · 复制行 → INSERT
Section titled “新增行 · 复制行 → INSERT”通过结果网格工具栏的 + 行 或 复制行 按钮可使用 staged INSERT。
| 按钮 | 行为 |
|---|---|
| + 行 | 添加空行(留空则为 NULL) |
| 复制行 | 复制选中行的所有列值,添加为新行 |
添加行并编辑单元格后,点击 保存 按钮。保存时会临时关闭自动提交并执行 INSERT,因此之后需用 提交 或 回滚 确认或取消。
大批量导出(CSV · Excel)
Section titled “大批量导出(CSV · Excel)”选择 导出 ▾ → CSV 或 Excel。
- 流式方式:主进程直接流式写入磁盘,因此数百万行也无需担心内存。
- 进度模态显示
N / 全部行 (X%),可用 取消 按钮中途停止。 - CSV:含 UTF-8 BOM(在 Excel 中中文正常显示)。
- Excel(.xls):1,048,575 行上限。
自然语言 → SQL(✨)
Section titled “自然语言 → SQL(✨)”用 SQL 编辑器左侧导轨的 ✨ 按钮切换自然语言输入栏。
▸ 本月销售额前 5 名的客户▸ 按天展示上周注册的用户数执行顺序:关键词分析 → 对活动连接的全部架构打分 → 筛选相关表·列 → 生成 SQL(显示各步进度和经过时间)。生成的 SQL 会插入到光标行下方(不覆盖既有内容)。可用 Ctrl+Z 撤销,生成过程中也可用 取消 按钮中断。
生成的 SQL 会进入编辑器,因此经检查后由你手动执行 —— 不会自动执行。
SQL 代码片段
Section titled “SQL 代码片段”保存常用 SQL 以便快速调用。
- 点击工具栏 代码片段 按钮 → 保存当前 SQL(输入名称,留空则自动取 SQL 开头)。
- 点击条目会加载到编辑器,用 ✕ 删除。
- 代码片段为全局保存,可在任何 DB 编辑器中使用。
点击工具栏 历史 按钮,会按最新顺序显示成功的查询(自动去重)。点击条目会加载到编辑器。历史保存在 userData/db-history.json 中。
网格单元格 AI(Ctrl+I)
Section titled “网格单元格 AI(Ctrl+I)”在网格中选择单元格范围后,按 Ctrl+I 或点击工具栏 AI 按钮,即可将选中数据作为上下文向 AI 提问。
▸ 帮我分析其中的异常点▸ 用这些数据生成 UPDATE 查询▸ NULL 比例高的列原因是什么?会以选中值 · 表名 · 已执行 SQL · PK 信息 · 引擎种类作为上下文分析。超过 200 行时仅传递前 200 行。
在树上右键 → 选择 列分析,可基于样本查看表的实际数据统计。
status 列 —— NULL 2.3% · Distinct 4 个 (active, inactive, pending, blocked) · 众数 active 87%amount 列 —— NULL 0% · min 100 · max 9,800,000 · 均值 452,000提供 NULL 比例 · 唯一值数 · enum 候选,数值型则提供 min/max/均值。可用于在编写查询前掌握列特征,或用于索引设计。
危险查询保护
Section titled “危险查询保护”在 SQL 编辑器中用 Ctrl+Enter 直接执行的查询会无需确认直接执行(面向高级用户)。作为补偿,所有 DDL/DML 都会自动记录在变更历史中,可以撤销(见下文)。会在执行前弹出确认窗的情形有以下两种。
| 路径 | 行为 |
|---|---|
AI 执行的 SQL(db_query 工具) | 读取自动执行,写入·破坏性(DROP/TRUNCATE/无 WHERE 的 DELETE 等)弹确认对话框。prod 标签连接强化一级 |
| SQL 代码块 ▶ 执行(AI 回答·代码编辑器 codelens) | DROP/DELETE/UPDATE/TRUNCATE/ALTER/GRANT/REVOKE 等会连同查询预览一起确认 |
在架构树上右键 → DROP TABLE… 之类的操作,需直接输入表名才能执行,需经过强确认。
基于备份的回滚
Section titled “基于备份的回滚”执行 DDL/DML 时会自动备份变更前的数据,人和 AI 的执行都可以撤销。
- 小量(≤1,000 行,含 PK 的单表):在内部历史 DB 中以 JSON 保留变更前的行。
- 大量 / 复杂 / 无 PK:在目标 DB 中创建备份表(
blyck_bak_…)保留,撤销后自动删除。 DROP/TRUNCATE等部分 DDL 无法生成逆 SQL,会标记为不可撤销项。
请在变更历史(Ctrl+Shift+H)中选择条目执行 撤销。无 WHERE 的大批量 UPDATE · DELETE 也可用备份数据恢复。
与 AI 聊天配合
Section titled “与 AI 聊天配合”AI 聊天直接调用 DB 工具。
▸ 帮我在这个表里找出重复邮箱▸ 给我看 orders 架构并推荐索引▸ 上个月订单取消率最高的客户 TOP 10执行顺序:查询架构(db_schema)→ 必要时列分析 → 编写·执行查询(db_query)→ 失败时自我修正。写入查询始终会通过上述安全装置(确认对话框)。
与其他文档的联动
Section titled “与其他文档的联动”| 功能 | 文档 |
|---|---|
| 链接 DB 到 SQL 编辑器,实现代码中 SQL 自动完成 | 代码编辑器 |
| 将 DB 架构·结果纳入 RAG 通用检索 | 通用检索(RAG) |
| 变更历史·DML 撤销 | 变更历史 · Git |
| 用 AI 聊天自动化 DB 作业 | AI 聊天 |
出现 Oracle NJS-116 错误。
这是 Thin 驱动不支持的密码校验器方式。请在连接对话框中打开 强制 Thick 并填入 64 位 Instant Client 路径。
按了 ■ 中断但查询不停。
服务端取消是 best-effort 方式,会在下一个检查点识别。繁重的聚合查询请稍候。SQLite 没有服务端阶段,会立即中断。
大批量查询过程中应用崩溃。
请使用 导出 ▾(磁盘流式) 代替网格剪贴板复制。Excel 上限为 100 万行。
在 Excel 中打开 CSV 后中文乱码。
CSV 以 UTF-8 BOM 保存。请使用 Excel 数据导入 → 指定编码 65001 UTF-8,或用 剪贴板(TSV) 直接粘贴。
无法编辑单元格。
仅在单表 SELECT 且包含 PK 列的结果中启用。JOIN · GROUP BY · UNION · DISTINCT 或视图结果无法编辑。
自然语言→SQL 结果用了错误的表。
重建索引并在 📒 术语表 中注册业务术语·表映射,可提升准确度。
连接后树立即为空。
连接成功后,架构索引可能需要几秒。请尝试点击头部 ↻ 刷新按钮。若正在 Oracle Thick 回退中,连接完成可能需要更长时间。