dbx/docs/content/docs/sql-snippets.cn.mdx

79 lines
3.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: SQL 代码片段
description: 管理可复用 SQL 模板、触发键和可跳转占位符,并在编辑器补全中快速展开。
---
SQL 代码片段会作为编辑器补全候选出现。输入触发键后接受候选DBX 会在光标处插入模板;模板中的占位符可以继续用 `Tab` 和 `Shift+Tab` 逐个填写。
## 管理代码片段
前往 **设置 → 代码片段**。每个片段包含:
| 字段 | 作用 |
| --- | --- |
| 标签 | 补全列表中显示的名称;留空时使用触发键。 |
| 触发键 | 用于匹配补全候选的前缀,必填,并且在当前片段列表中必须唯一。 |
| 状态 | 临时启用或停用片段,不需要删除模板。 |
| SQL 内容 | 接受补全后插入编辑器的模板正文。 |
你可以新增、编辑、启用、停用或删除片段。**恢复默认值**会把当前草稿替换为 DBX 内置片段;完成修改后点击设置窗口中的 **应用** 保存。
<Callout type="info">
DBX 自带 `sel`、`ins`、`upd`、`cte`、`join` 等常用片段。部分内置片段会根据当前数据库调整语法,例如选择合适的行数限制或 `ALTER TABLE` 写法;自定义片段则按原文插入。
</Callout>
## 在编辑器中展开
1. 在 SQL 编辑器中输入触发键,例如 `sel`。
2. 在补全列表中确认标签和正文预览。
3. 按 `Tab`、`Enter` 或点击候选接受补全。
4. 如果模板包含占位符,继续按 `Tab` 前进,按 `Shift+Tab` 返回。
如果补全列表没有出现,请确认片段已启用、触发键与当前输入匹配,并检查编辑器自动补全是否被关闭。
## 占位符语法
DBX 使用 CodeMirror 代码片段语法:
| 写法 | 作用 |
| --- | --- |
| `${}` | 创建一个空的可编辑位置。 |
| `${name}` | 创建默认文本为 `name` 的可编辑位置;同名位置会同步编辑。 |
| `${1}` | 使用数字显式指定跳转顺序。 |
| `${1:defaultText}` | 指定跳转顺序并提供默认文本。 |
| `#{name}` | `${name}` 的等价写法。 |
数字占位符按照编号跳转;没有数字时按照模板中的出现顺序跳转。要插入不会被识别为占位符的字面量花括号,请在花括号前加反斜杠。
例如:
```sql
SELECT ${1:columns}
FROM ${2:table}
WHERE ${3:condition}
ORDER BY ${4:column};
```
重复使用同一个占位符可以同时修改多个位置:
```sql
SELECT ${1:column}, COUNT(*) AS cnt
FROM ${2:table}
GROUP BY ${1:column};
```
## 保存、同步与安全
代码片段属于编辑器设置,会保存在当前 DBX 运行环境中。桌面版的[配置云同步](/cn/docs/cloud-sync)可以连同其他编辑器设置一起同步片段;[连接配置迁移](/cn/docs/config-export)只处理数据库连接,不包含代码片段。
片段只是生成 SQL不会绕过数据库权限或 DBX 的生产保护。执行包含写入或 DDL 的模板前,仍应检查展开后的完整 SQL并遵循[生产安全](/cn/docs/production-safety)建议。
<Cards>
<Card title="查询编辑器" href="/cn/docs/query-editor">
了解补全、执行范围、历史记录和 SQL 文件等编辑器能力。
</Card>
<Card title="快捷键" href="/cn/docs/keyboard-shortcuts">
查看接受补全、格式化和执行 SQL 的当前快捷键。
</Card>
</Cards>