跳转到内容

SQL 编辑器

English · 文档

每个查询 Tab 都有自己的编辑器缓冲区。编辑器通过 tree-sitter 高亮真正的 SQL,缩进为 2 个空格,并显示行号。

Tab

控件作用
+追加一个新的查询 Tab 并聚焦它
单击某个 Tab切换到该 Tab
×关闭一个 Tab —— 只剩一个 Tab 时该按钮隐藏,因此最后一个 Tab 无法关闭
重命名(工具栏)打开对话框重命名当前 Tab;名称为空时回退为 查询 N

Tab 只存在于内存中。其中的 SQL 不会被保存,因此退出后会丢失所有 Tab——只有一点例外:下次启动时会得到一个全新的 Tab。

运行 SQL

编辑器获得焦点时按 ⌘↵(Cmd+Enter),或使用 运行 按钮。

查询运行期间再次按下运行不会有任何效果:既不能取消,也没有超时。长查询会一直运行到 DuckDB 完成为止,其他数据库操作都排在它后面。如果界面看起来卡住了,原因就在这里——查看状态栏,或者退出并重启。

语句如何被处理取决于它的起始关键字。SELECTWITHSHOWDESCRIBEEXPLAINPRAGMASUMMARIZEVALUESFROMTABLEPIVOTCALL 会产生结果集。其他语句(DDL、DML)不会给出结果表格,而是报告 Done · N rows affected · took …。判断时会跳过开头的 -- 注释;块注释则不会跳过。

错误

执行失败的语句会弹出一个标题为 查询失败 的提示框,其中原样显示 DuckDB 的报错信息。这条信息来自引擎,无论界面语言是什么,它始终是英文。结果表格中不会写入任何内容,但这次尝试仍会带着失败标记记录到查询历史中。

格式化

格式化 会用 sqlformat 处理缓冲区内容:缩进 2 个空格、关键字转为大写,然后替换整个缓冲区。缓冲区为空时不做任何操作。

EXPLAIN

EXPLAIN 会执行 EXPLAIN <your SQL>,以纯等宽文本展示查询计划并附上耗时,同时把结果面板切回结果 Tab。

自动补全

补全菜单能感知 catalog。候选项按以下顺序排列:

  1. schema 中的表和列(最多 35 项)
  2. DuckDB 函数名
  3. SQL 关键字

最多提供 50 个候选项。匹配方式是针对光标左侧紧邻标识符的大小写不敏感的前缀匹配,因此 sel 会补全为 SELECT,而 elect 补全不出任何结果。函数会插入名称和一个左括号;非普通标识符会以双引号形式插入。

关键字和函数列表是经过挑选的子集——并非每个 DuckDB 函数都会出现。

键盘快捷键

DuckLocal 自己定义了少数几个快捷键,其余都来自编辑器和表格组件,行为与任何 macOS 文本框中一致:

快捷键操作
⌘↵运行查询
⌘S在 dashboard 的源码视图中保存
⌘+ / ⌘− / ⌘0放大 / 缩小 / 复原界面大小——见界面大小
⌘B收起或展开侧栏
⌘F / ⇧⌘F在编辑器中查找 / 替换
⌘Z / ⇧⌘Z撤销 / 重做
⌘A全选
⌘C / ⌘X / ⌘V复制 / 剪切 / 粘贴
⌥⌘↑ / ⌥⌘↓在上方 / 下方添加光标
⌘← / ⌘→ / ⌥← / ⌥→按行 / 按词移动
⌘↑ / ⌘↓移动到文档开头 / 结尾
⌘⌫ / ⌥⌫删除到行首 / 删除前一个词

没有菜单栏,也没有命令面板。其他所有操作都是按钮:编辑器上方的工具栏、Tab 栏、侧栏和标题栏中都有。

基于 Apache-2.0 许可开源发布。